【问题标题】:How to connect Rails Grape API with Ember reflexive model如何将 Rails Grape API 与 Ember 自反模型连接起来
【发布时间】:2015-10-05 15:38:29
【问题描述】:

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

我还尝试创建两个模型:类别和子类别,并提供具有其他 id/id 命名的相同有效负载,我可以看到在这种情况下,所有必需的子类别记录,但不像类别的 hasMany(两个单独的数据)。

【问题讨论】:

    标签: json ember.js ember-data grape grape-entity


    【解决方案1】:

    问题可能来自您忘记在第二个倒数前面放双点:

    改变

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 2020-11-08
      • 2019-04-15
      • 2022-01-07
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 2021-06-11
      相关资源
      最近更新 更多