当我尝试创建模型实例时
record = this.store.createRecord('model', { /* whatever */ });
record.save();
我的API 更新已经存在的后端记录,而不是创建新记录。 API返回HTTP 200 [ok](也可能是202 [接受])而不是201 [created]。 如果已存在同一记录的实例,那么在商店中创建此记录的余烬方式是什么?
现在如果我“创建”一条结果更新现有记录X次的记录,我最终在我的余烬数据存储中重复了相同的记录(具有相同的ID)X次。
答案 0 :(得分:1)
当您使用createRecord时,您告诉Ember将新记录添加到您的商店。
如果您想要更新记录,首先需要将记录提取到商店中:
this.store.find('model', id).then(function(record) {
record.set('property', 'value');
record.save();
});
http://emberjs.com/api/data/classes/DS.Store.html#method_createRecord
也许您正在寻找this.store.update(...),具体取决于您的具体需求:http://emberjs.com/api/data/classes/DS.Store.html#method_update