Ember.js:保存记录会破坏belongsTo的关系

时间:2017-11-09 15:14:36

标签: ember.js ember-data

我有一个模型,我们称之为76/,2,另一个是house。当我尝试保存kitchen模型时,其housebelongsTo()的关系将被销毁。

kitchenhousebelongsTo()个关系,就像那样:

kitchen

export default DS.Model.extend({ name: DS.attr('string'), kitchen: DS.belongsTo('kitchen', {polymorphic:true}), }); 是一个非常简单的模型:

kitchen

我正在创建我的记录,填充它并最终将其保存在组件中。这是与之相关的功能。

export default DS.Model.extend({
name: DS.attr('string')
});

正如您在上面的代码段中所看到的,一旦我保存 createHouse() { this.createKitchen().then(() => { // this will create, fill and save a kitchen record this.createAnSetHouse(); // this will create and fill a house record as 'house' console.log(this.get('house').get('kitchen')); // this properly get the kitchen record this.get('house').save().then(() => { console.log(this.get('house').get('kitchen')); // and here the relationships is set to null ??? / * rest of the function * / } 记录,关系就会设置为null,即使事先已正确设置。

修改

我应该提到它,这是我的服务器收到的有效负载:
  jhouse

感谢任何提示。

最终编辑

我想出了如何解决这个问题,我在"content": { "attributes": { "kitchen_id": null, "name": "myName" } }的承诺中做了一些奇怪的事情,即使createKitchen我的Ember.RSVP.defer()也是resolve()记录尚未保存...
上面的片段对大多数人来说应该可以正常工作,如果你不做一些有希望的奇怪事情。

1 个答案:

答案 0 :(得分:0)

作为一个有根据的猜测,我认为您的API响应

  

this.get( '家')。保存()

是没有厨房关系的数据包,然后覆盖本地模型。

如果您在开发者控制台中查看响应,您会看到什么?

另外:我没有看到厨房在该代码中持久存在,除非您在保存房屋时隐式保留它。