3

我有以下两个模型:UserJob
每个user人只能有一份工作。和看起来像这些 (1)
user.attributesjob.attributes

(1)

user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
}

job.attributes = {
    id: 5,
    name: 'fooJob'
}

假设我想在这两个模型之间建立关系:外键应该是job_id

(2)

User = Backbone.ModelRelation.extend({
    relations: [
        {
            type: Backbone.HasOne,
            key: 'job_id',
            keyDestination: 'job',
            relatedModel: User
        }
    ]
});

使用代码 (2),结果将是:

(3)

user.attributes = {
    id: 1,
    name: 'barName',
    job: job.attributes
}

如您所见,job_idfromuser.attributes丢失了。
因此,如果我向服务器发出 PUT 请求,服务器会抱怨缺少 job_id 属性。
有什么想法可以修复(3)以便将 job_id 保留在 user.attributes 中,如(4)?

(4)

user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
    job: job.attributes
}

参考:
Paul Uithol -骨干关系

4

1 回答 1

0

我的解决方法是改变服务器读取 JSON 的方式。

所以服务器会读取{user:{job:{id:1}}}而不是{user:{job_id:1}}

请注意,我们包含一个具有 id 属性的子对象,而不是使用 job_id 平面属性。

根据可以配置的服务器端框架。

于 2014-05-30T14:25:07.783 回答