首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >embedded对象重复

embedded对象重复
EN

Stack Overflow用户
提问于 2015-08-20 15:56:35
回答 1查看 48关注 0票数 0

在Ember中,我有一个模型,它有嵌入的子对象,比如belongsTo和hasMany。我将Ember数据备份到Rails API上,并使用Active Model序列化程序。对象的设置是-

代码语言:javascript
复制
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')
});

这是所有的发现和工作的全面。

我的问题出现在发布索引上,列出了所有的版本。当一个艺术家或标签在多个版本上使用时,它只包含在所有发行版本的最终版本中,从以前的对象中缺失。例如-

代码语言:javascript
复制
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中反映的每个对象中都包含了它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 17:35:58

这是因为你的artist不可能有很多版本。你应该换衣服

代码语言:javascript
复制
Application.Artist = DS.Model.extend({
    name: DS.attr(),
    release: DS.belongsTo('release')
});

代码语言:javascript
复制
Application.Artist = DS.Model.extend({
    name: DS.attr(),
    release: DS.hasMany('release')
});

label也是如此

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32122936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档