我正在尝试使用带有 Ember-Data 的 Fixture Adapter 开发应用程序。
当我尝试创建一个新对象(基于我定义的模型)时,除非我指定 ID,否则它将无法工作。
如果我指定 ID 并执行此操作:
var person = SD.Person.createRecord({
id: 234,
name: "test"
});
var person.save();
我得到:
错误:断言失败:适配器无法将新 id 分配给已有 id 的记录。有 id: 234 并且您尝试使用 234 更新它。这可能是因为您的服务器返回数据以响应具有与您发送的不同 id 的查找或更新。
这听起来像是我正在更新现有记录(我不是,我的 Person 对象只有 2 个固定装置,ID 分别为 1 和 2)。
Ember 是否试图以某种方式两次保存我的对象?
我想我可能不得不尝试使用generateIdForRecord来设置 ID,但无论我尝试什么,我都无法引用该函数。
newBooking.set('id', this.store.generateIdForRecord(this.store, newBooking));
newBooking.set('id', DS.generateIdForRecord(this.store, newBooking));
newBooking.set('id', this.generateIdForRecord(this.store, newBooking));
newBooking.set('id', generateIdForRecord(this.store, newBooking));
TypeError:this.store.generateIdForRecord 不是函数
我正在使用最新版本的 Ember 和 Ember-Data(也尝试过以前的版本)。我的模型的实现与 Ember 指南中的 TodoMVC 教程没有什么不同,在教程中,不需要做任何花哨的事情来使用 Fixture 适配器管理 ID,所以我真的不知道发生了什么。
如何创建一个新的 Person 对象(根据我的示例,只有一个“名称”字段并使用 Ember-Data 的夹具适配器将其持久化,而不会出现上述错误?