Json 如何将Rails-grapeapi与Ember自反模型连接起来

Json 如何将Rails-grapeapi与Ember自反模型连接起来,json,ember.js,ember-data,grape,grape-entity,Json,Ember.js,Ember Data,Grape,Grape Entity,我在将来自Grape(用Grape实体序列化)的Json负载与Ember自反模型连接时遇到问题。模型如下所示: Category = DS.Model.extend { name: DS.attr 'string', children: DS.hasMany 'category', inverse: 'parent', parent: DS.belongsTo 'category', inverse 'children' } 正如你们所看到的,我试图在这里建立类别-子类别关系的模型

我在将来自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中有一个类别记录,但没有相关的子项


我还尝试制作了两个模型:category和subcategory,并为其他id/id命名提供相同的负载,我可以看到在这种情况下,所有需要的子类别记录都有,但没有category(两个独立的数据)那么多

问题可能是因为您忘记在第二个倒数前面加上双点:

改变

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
}