EmberJSで書かれた私のアプリケーションのテストを書いています。私はミラージュを使用しています。 、私が作成していEmber Mirageと関係を取得できません
蜃気楼/モデル/ paperwork.js
export default Model.extend({
customer: belongsTo('customer'),
paperwork_products: hasMany('paperwork-product', { inverse: 'paperwork' }),
蜃気楼/モデル/事務処理-product.js私のシナリオでは
export default Model.extend({
paperwork: belongsTo('paperwork', { inverse: 'paperwork_products' }),
});
: は、私は2つの次のモデルを持っていますこのように私の件のデータ:
const paperwork = server.create('paperwork');
const paperworkProduct = server.create('paperwork-product', { paperwork });
paperwork.paperwork_products.add(paperworkProduct);
マイルート:
export default ApplicationRoute.extend({
model(params) {
return this.store.findRecord('paperwork', params.paperwork_id, { include: 'paperwork_products' }),
},
});
問題は、テンプレートにpaperwork_productsにアクセスできないことです。それは未定義です(他の書類属性はここにありますが、関係はありません)。私はすでにルートが宣言されているときに私のmirage/config.jsにデバッガを置こうとしました。私の書類が存在し、彼の「書類作成品」もあります。しかし、私はテンプレート内にpaperwork_productsデータを取得することはできません。 私は何が間違っていますか?私は私の中で何かを変更する必要がありますと思う:
this.get('v1/paperworks/:id');
しかし、私は何を知らない... 感謝を事前に!
編集:ここに私の本当のエンバーモデルは以下のとおりです。
モデル/ paperwork.js
export default DS.Model.extend({
customer: DS.belongsTo('customer'),
paperwork_products: DS.hasMany('paperwork-product', { async: true }),
});
モデル/事務処理-product.js
export default DS.Model.extend({
paperwork: DS.belongsTo('paperwork'),
});
昨日、私は本当を比較してみました私の背中からのJsonApiレスポンス、そしてミラージュのレスポンスを確認しました。私は関係ハッシュで、私の関係 "paperwork_products"を書類作成製品(ミラージュ付き)に変更しました。したがって、アンダースコアやダッシュを付けたモデルとの関係に問題があります。 config.jsでJSONAPIバックエンドをモックしようとしましたが、うまく動作します。ただ、 "paperwork_products"
ミラージュ応答による "事務処理-製品" に置き換え:
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork-products":{
"data":[
{
"type":"paperwork-products",
"id":"1"
}
]
}
}
は次のようになります。hasManyの関係で
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork_products":{
"data":[
{
"type":"paperwork_products",
"id":"1"
}
]
}
}
私の他のモデルには、何の問題もありません。
私のメインポストを編集しました。私は他の詳細を加えました。ご回答有難うございます。 – Seybol