Json 如何序列化嵌入的belongsTo关系
我使用master ember cli mirage分支来利用活动模型序列化程序和关系支持,现在我有了一个具有许多关系的完整工作示例,但是现在假设模型用户只有一个组织,我不知道如何将组织json嵌入到用户json中,到目前为止,我一直在尝试使用belongsTo,但运气不好,因为它试图向用户添加外键。看起来,如果用户没有组织,它会抛出一个错误,因为它会验证资源(null,因为没有组织)是否是一个模型,如果不是,它会尝试映射为一个集合,从而导致错误 不确定如何实现这种行为,我通过将用户设置为属于组织(实际上是相反的)并将组织id分配给用户organizationId来欺骗用户模型,这样它将组织对象嵌入到用户json中,但很明显,这只是一种黑客行为,而不是正确的/预期的方式,因为hasOne帐户是一种常见的模式Json 如何序列化嵌入的belongsTo关系,json,ember.js,ember-cli-mirage,Json,Ember.js,Ember Cli Mirage,我使用master ember cli mirage分支来利用活动模型序列化程序和关系支持,现在我有了一个具有许多关系的完整工作示例,但是现在假设模型用户只有一个组织,我不知道如何将组织json嵌入到用户json中,到目前为止,我一直在尝试使用belongsTo,但运气不好,因为它试图向用户添加外键。看起来,如果用户没有组织,它会抛出一个错误,因为它会验证资源(null,因为没有组织)是否是一个模型,如果不是,它会尝试映射为一个集合,从而导致错误 不确定如何实现这种行为,我通过将用户设置为属于组
非常感谢您的建议。您将希望向
/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'
}
}
});
我相信这目前不受支持,但它将在0.2.0发布之前得到支持。我需要添加一个选项到
belongsTo
,以便您可以指定哪个型号拥有外键。