この関係をモデル化するのに苦労しています。誰か助けてくれませんか?
テナントにはアプリがあります
アプリにはブランドがあります
大きな落とし穴は、2 レベルのサイドローディングです。現在の API は次のような応答を返します。
{
"tenants": [
{
"app_id": "app_001",
"id": 1,
"name": "Illya_no_delete",
}
],
"app": [
{
"brand_id": "brand_001",
"id": "app_001",
"name": "updated test client 2 name",
}
],
"brands": [
{
"id": "brand_001",
"app_id": "app_001"
}
]
}
モデルを次のように設定しました。
// models/tenant.js
export default Model.extend({
app: belongsTo('app'),
});
// mirage/models/app.js
export default Model.extend({
brand: belongsTo('brand'),
tenant: belongsTo('tenant')
});
// mirage/models/brand.js
export default Model.extend({
app: belongsTo('app')
});
シリアライザーを次のように設定しました。
// mirage/serializers/app.js
export default ApplicationSerializer.extend({
include: ['brand']
});
// mirage/serializers/tenant.js
export default ApplicationSerializer.extend({
include: ['app']
});
シナリオを次のように設定しました。
// mirage/scenarios/default.js
let brand = server.create('brand');
let app = server.create('app', {brand: brand});
server.createList('tenant', 10, {app: app});
残念ながら、生成された応答は、サイドロードされたブランド オブジェクトを返しません。他のすべてのオブジェクトが表示されます。
{
tenant: {
id: 1,
app_id: 2
},
apps: [
{
id: 2,
brand_id: null,
tenant_id: 1
}
]
}
「ブランド」を表示させるために何をする必要があるかについて何か提案はありますか?