hasMany关系序列化:' ids'使用EmbeddedRecordsMixin,如何" sidepush"?

时间:2014-07-04 09:01:51

标签: ember.js ember-data rails-activerecord

我正在使用DS.ActiveModelAdapter。

将新的Ember数据记录保存到我的后端,我想发送:

{
    author: {
        name: 'Mike',
        book_ids: [null, null]
    },
    books: [
        {
            name: 'book1'
        },
        {
            name: 'book2'
        }
    ]
}

我认为这是序列化:'ids'的用途,但是当我使用这个配置时:

App.AuthorSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
   attrs: {
      books: {serialize: 'ids'}
   }
});

我得到:

{
    author: {
        name: 'Mike',
        book_ids: [null, null]
    }
}

更新:

doc说:“通过使用serialize:'ids'可以选择不在序列化的有效负载中嵌入JSON。如果你根本不想发送关系,你可以使用序列化:'否”“。

所以目前尚不清楚是否只添加了id或者除了id和记录。我想在此确认这些记录并不是要通过使用序列化来添加:'ids',在这种情况下,我可以做什么来“侧推”嵌套记录。

1 个答案:

答案 0 :(得分:1)

似乎EmbeddedRecordsMixin不是那种方式..

Ember数据模型碎片对我来说是完美的解决方案。 https://github.com/lytics/ember-data.model-fragments

根据我在问题中提出的例子,使用后者,相应的模型将是:

App.Author = DS.Model.extend({
  name: DS.attr('string'),
  books: DS.hasManyFragments('book')
});

App.Book = DS.ModelFragment.extend({
  name: DS.attr('string')
});