如何序列化嵌入的belongsTo关系

时间:2015-12-09 04:22:36

标签: json ember.js ember-cli-mirage

我使用master ember-cli-mirage分支来利用主动模型序列化器和关系支持,现在我已经拥有了hasMany关系的完整工作示例,但是现在给出了一个模型UserOneOne组织我无法弄清楚如何将组织json嵌入到用户json中,到目前为止我一直试图使用belongsTo而没有运气,因为它试图将外键添加到用户,看起来像如果用户没有组织,则会抛出错误,因为它验证资源(因为没有组织而为null)是否为模型,如果不是,则它会尝试映射为集合,从而导致错误。

不确定如何实现这种行为,我通过将用户设置为好像属于组织(它确实相反)并将组织ID分配给用户organizationId来欺骗用户模型,这样它将组织对象嵌入到用户json中,但它显然只是一个hack而不是正确/预期的方式来实现这一点,因为hasOne是一种常见的模式。

任何建议或建议都表示赞赏。

1 个答案:

答案 0 :(得分:2)

您需要为具有嵌入记录的模型命名的/serializers添加自定义序列化程序:

import DS from 'ember-data';
// Assuming your application serializer extends ActiveModelSerializer
import ApplicationSerializer from './application';

const { EmbeddedRecordsMixin } = DS;

export default ApplicationSerializer.extend(EmbeddedRecordsMixin, {
  attrs: {
    yourEmbededRecordsModelName: {
      embedded: 'always'
    }
  }
});