在Ember中,我有一个模型,它有嵌入的子对象,比如belongsTo和hasMany。我将Ember数据备份到Rails API上,并使用Active Model序列化程序。对象的设置是-
Application.Release = DS.Model.extend({
title: DS.attr(),
...
label: DS.belongsTo('label'),
artists: DS.hasMany('artist')
});
Application.ReleaseSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
label: { embedded: 'always' },
artists: { embedded: 'always' }
}
});
Application.Label = DS.Model.extend({
name: DS.attr(),
release: DS.belongsTo('release')
});
Application.Artist = DS.Model.extend({
name: DS.attr(),
release: DS.belongsTo('release')
});这是所有的发现和工作的全面。
我的问题出现在发布索引上,列出了所有的版本。当一个艺术家或标签在多个版本上使用时,它只包含在所有发行版本的最终版本中,从以前的对象中缺失。例如-
Title Artist Label
Release 1 Artist 1 Label 1
Release 2
Release 3 Artist 2 Label 2版本2的JSON如预期的那样包含Artist 2和Label 2,但在Ember对象中缺少。
我是不是遗漏了一些关于Ember如何看待这些物体的重要东西?如何确保在JSON中反映的每个对象中都包含了它们?
发布于 2015-08-20 17:35:58
这是因为你的artist不可能有很多版本。你应该换衣服
Application.Artist = DS.Model.extend({
name: DS.attr(),
release: DS.belongsTo('release')
});至
Application.Artist = DS.Model.extend({
name: DS.attr(),
release: DS.hasMany('release')
});label也是如此
https://stackoverflow.com/questions/32122936
复制相似问题