Ember嵌入物体重复

时间:2015-08-20 15:56:35

标签: ember.js ember-data

在Ember中,我有一个模型,它包含嵌入的子对象,包括belongsTo和hasMany。我使用Ember Data支持Rails API,并使用Active Model Serializer。设置对象是 -

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中所反映的那样?

1 个答案:

答案 0 :(得分:1)

这是因为您的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

相同