Ember-Data で Fixture Adapter を使用してアプリケーションを開発しようとしています。
(定義したモデルに基づいて) 新しいオブジェクトを作成しようとすると、ID を指定しないと機能しません。
IDを指定してこれを行うと:
var person = SD.Person.createRecord({
id: 234,
name: "test"
});
var person.save();
私は得る:
エラー: アサーションが失敗しました: アダプターは、既に ID を持つレコードに新しい ID を割り当てることができません。ID: 234 を持っていて、それを 234 で更新しようとしました。これは、サーバーが、送信したものとは異なる ID を持つ検索または更新に応答してデータを返したために発生した可能性があります。
どういうわけか既存のレコードを更新しているように聞こえます (そうではありません。ID がそれぞれ 1 と 2 の Person オブジェクトには 2 つのフィクスチャしかありません)。
Ember は何らかの方法でオブジェクトを 2 回保存しようとしていますか?
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 オブジェクトを作成するにはどうすればよいですか (私の例のように、'name' フィールドを 1 つだけ作成し、前述のエラーなしで Ember-Data のフィクスチャ アダプターを使用して永続化しますか?