我知道 Ember-Data 在设计上应该与 Active Model Serializers 兼容,但它们似乎在序列化has_many
与嵌入式 ID 的关系方面不同步。
例如,序列化器
class PostSerializer < ActiveModel::Serializer
embed :ids
has_many :comments
end
生成 JSON
{
"post": {
"comment_ids": [...]
}
}
但是 Ember Data 中的默认配置,
App.Post = DS.Model.extend({
DS.hasMany('App.Comment'),
});
App.Comment = DS.Model.extend();
期望注释关联在comments: [...]
没有_ids
后缀的情况下被序列化(请参阅Ember.js 指南的 REST 适配器部分的关系子部分)。
我尝试了以下解决方法:
class PostSerializer < ActiveModel::Serializer
attribute :comments
def comments
object.comment_ids
end
end
它可以工作,但是embed :ids, :include => true
现在添加以启用侧面加载什么都不做,因为 AMS 不知道它是一个关联。
编辑:我正在使用active_model_serializers (0.6.0)
gem 和 Ember-Data 修订版 11