3

次の 2 つのモデルがあります:UserJob.
それぞれuserが持つことができるジョブは 1 つだけです。とは次
のようになります (1):user.attributesjob.attributes

(1)

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

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

これら 2 つのモデル間の関係を作成したいとします。外部キーは次のようにする必要があります。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 属性が欠落していると文句を言います。
(4) のように user.attributes に job_id を保持するために (3) を修正するにはどうすればよいですか?

(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}}

job_id フラット属性を使用するのではなく、id 属性を持つサブオブジェクトを含めることに注意してください。

サーバー側のフレームワークに応じて、これを構成できます。

于 2014-05-30T14:25:07.783 に答える