我有一个模型,我们称之为76/,2
,另一个是house
。当我尝试保存kitchen
模型时,其house
与belongsTo()
的关系将被销毁。
kitchen
与house
有belongsTo()
个关系,就像那样:
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()
记录尚未保存...
上面的片段对大多数人来说应该可以正常工作,如果你不做一些有希望的奇怪事情。
答案 0 :(得分:0)
作为一个有根据的猜测,我认为您的API响应
this.get( '家')。保存()
是没有厨房关系的数据包,然后覆盖本地模型。
如果您在开发者控制台中查看响应,您会看到什么?
另外:我没有看到厨房在该代码中持久存在,除非您在保存房屋时隐式保留它。