1

保存されていないレコードに埋め込みの belongsToを追加しようとすると、問題が発生しました。トランザクションをコミットすると、2 つのPOST要求が発生しました。悪いことをしているかどうかはわかりません...

これが私のモデルとマッピングです:

Comment = App.Comment = DS.Model.extend({
  title: DS.attr('string')
});

Group = App.Address = DS.Model.extend({
  name: DS.attr('string')
});

Post = App.Post = DS.Model.extend({
  title: DS.attr('string'),
  comments: DS.hasMany(Comment),
  group: DS.belongsTo(Group)
});

DS.RESTAdapte.map(Post, {
  comments: { embedded: 'always' },
  group: { embedded: 'always' }
});

私の取引

var transaction = store.transaction();

var post = transaction.createRecord(Post, {
  title: 'This post is unsaved'
});

post.get('comments').createRecord({
    title: 'This embedded record is also unsaved'
});

post.set('group', Group.createRecord({
    name: 'My Group'
}));

transaction.commit();

次に、2 つのPOSTリクエストを作成します。1 つは'/post'で、もう 1 つは'/group'です。

私は何か間違っていますか?ありがとうございます !

4

1 に答える 1

0

あなたには2つのトランザクションがあるようです:

  • 手動で作成し、投稿とコメントを含むもの
  • グループを作成するストアのデフォルトのもの

おそらく、コードを次のようにしたいでしょう。

post.set('group', transaction.createRecord(App.Group, {
    name: 'My Group'
}));

Group.createRecordストアのデフォルト トランザクションを使用します。

于 2013-05-17T18:08:51.500 に答える