嵌入到属于未保存的记录会创建两个POST请求

时间:2013-05-16 09:17:36

标签: ember-data

当我尝试将嵌入的belongsTo 添加到未保存的记录时出现问题。提交交易时,我收到了两个 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();

然后我会有两个 POST 请求,一个在 '/ post' 哪个好,另一个在 '/组'

我做错了吗?谢谢你!

1 个答案:

答案 0 :(得分:0)

在我看来,你有2笔交易:

  • 您手动创建并包含帖子和评论
  • 的那个
  • 商店的默认商家,您可以在其上创建论坛

你可能希望你的代码是这样的:

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

Group.createRecord将使用商店的默认交易。