Grape からの Json ペイロード (Grape エンティティでシリアル化) を Ember 再帰モデルに接続する際に問題が発生しています。モデルは次のようになります。
Category = DS.Model.extend {
name: DS.attr 'string',
children: DS.hasMany 'category', inverse: 'parent',
parent: DS.belongsTo 'category', inverse 'children'
}
ご覧のとおり、ここではカテゴリとサブカテゴリの関係をモデル化しようとしています。エンドポイントからの json 応答の例は次のとおりです。
{
"category": {
"id": 1,
"name": "Sport",
"child_ids": [
5,
6,
8,
7
]
},
"children": [
{
"id": 5,
"name": "Basketball",
"parent_id": 1
},
{
"id": 6,
"name": "Football",
"parent_id": 1
},
{
"id": 8,
"name": "Running",
"parent_id": 1
},
{
"id": 7,
"name": "Volleyball",
"parent_id": 1
}
]
}
警告メッセージがあります:
WARNING: Encountered "children" in payload, but no model was found for model name "child" (resolved model name using mateby-front@serializer:-active-model:.modelNameFromPayloadKey("children"))
ActiveModelAdapter のドキュメントに記載されているように、ネストされたリソースの ID と、サイドロードされたデータを含む親リソースの ID を提供する必要があります。問題は、ember インスペクタにカテゴリ レコードが 1 つあるが、関連する子がないことです。
また、カテゴリとサブカテゴリの 2 つのモデルを作成し、他の ID/ID 命名と同じペイロードを提供しようとしましたが、この状況では、必要なサブカテゴリ レコードはすべて存在するものの、カテゴリの hasMany ほどではないことがわかりました (2 つの分離されたデータ)。