Ember データと Mongodb 埋め込みオブジェクトに関して問題があります。ここに私のモデルがあります:
App.Contact = App.Entity.extend({
name : DS.attr('string'),
firstname : DS.attr('string'),
additional_names : DS.attr('string'),
civility : DS.attr('string'),
birthday : DS.attr('date'),
organization : DS.belongsTo('App.Organization'),
role : DS.attr('string'),
photo_source : DS.attr('string'),
photo_uri : DS.attr('string'),
gravatar_mail : DS.attr('string'),
addresses : DS.hasMany('App.Address', { embedded: true }),
emails : DS.hasMany('App.Email', { embedded: true }),
phones : DS.hasMany('App.Phone', { embedded: true })
});
今、私はAPIを介して連絡先を取得しています: (GET /app/api/v1/contact/4f86c4774ab63c2417000001/) ここに私が得るものがあります:
{
"additional_names": null,
"addresses": [],
"birthday": null,
"civility": null,
"emails": [
{
"email": "alexandre@test.com",
"label": null,
"resource_uri": "/app/api/v1/contact/4f86c4774ab63c2417000001/emails/0/",
"type": "HOME"
}
],
"firstname": "Alexandre",
"gravatar_mail": null,
"groups": [],
"id": "4f86c4774ab63c2417000001",
"name": "Simoui",
"organization": null,
"phones": [],
"photo_source": null,
"photo_uri": "/static/img/nophoto.png",
"resource_uri": "/app/api/v1/contact/4f86c4774ab63c2417000001/",
"role": null
}
「ルート」オブジェクトには ID がありますが、埋め込みオブジェクト「メール」にはありません。mongodb では、id はサブドキュメントには設定されず、ルート ドキュメントにのみ設定されるためです。
このようにして、ember-data は「email」オブジェクトに ID がないことを確認し、API を介して完全なオブジェクトを取得しようとします。例: GET /app/api/v1/email/set// 404 (見つかりません)
それがライトの問題であることを確認するために、偽の ID フィールドを持つ Mongodb サブドキュメントを返そうとしました。Like : (email オブジェクトの違いを参照)
{
"additional_names": null,
"addresses": [],
"birthday": null,
"civility": null,
"emails": [
{
"id": 431,
"email": "alexandre@test.com",
"label": null,
"resource_uri": "/app/api/v1/contact/4f86c4774ab63c2417000001/emails/0/",
"type": "HOME"
}
],
"firstname": "Alexandre",
"gravatar_mail": null,
"groups": [],
"id": "4f86c4774ab63c2417000001",
"name": "Simoui",
"organization": null,
"phones": [],
"photo_source": null,
"photo_uri": "/static/img/nophoto.png",
"resource_uri": "/app/api/v1/contact/4f86c4774ab63c2417000001/",
"role": null
}
その後、問題はありません。すべて問題ありません。だから私の質問は:それを修正する方法はありますか?