我在将来自 Grape(用 Grape 实体序列化)的 Json 有效负载与 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 Inspector 中只有一个类别记录,但没有相关的子项。
我还尝试制作两个模型:类别和子类别,并为其他 ids/id 命名提供相同的有效负载,我可以看到在这种情况下,所有需要的子类别记录但不是类别的 hasMany(两个单独的数据)。
最佳答案
问题可能来自您忘记在第二个逆之前放置双点的事实:
改变
Category = DS.Model.extend {
name: DS.attr 'string',
children: DS.hasMany 'category', inverse: 'parent',
parent: DS.belongsTo 'category', inverse 'children' #here
}
到
Category = DS.Model.extend {
name: DS.attr 'string',
children: DS.hasMany 'category', inverse: 'parent',
parent: DS.belongsTo 'category', inverse: 'children' #here
}
关于json - 如何将 Rails Grape API 与 Ember 反身模型连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952470/