0

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 のフィクスチャ アダプターを使用して永続化しますか?

4

1 に答える 1