Keen.io APIをラップするアダプターを作成しています。これまでのところ、プロジェクト リソースを正常に読み込むことができましたが、返されるオブジェクトは次のようになります。
{
partners_url: "/3.0/projects/<ID>/partners",
name: "Project Name",
url: "/3.0/projects/<ID>",
saved_queries: [ ],
events_url: "/3.0/projects/<ID>/events",
id: "<ID>",
organization_id: "<ORG ID>",
queries_url: "/3.0/projects/<ID>/queries",
api_key: "<API KEY>",
events: [
{
url: "/3.0/projects/<ID>/events/user_signup",
name: "user_signup"
},
{
url: "/3.0/projects/<ID>/events/user_converted",
name: "user_converted"
},
{
url: "/3.0/projects/<ID>/events/user_created_project",
name: "user_created_project"
}
]
}
多くの粗雑さを除いて、Ember は を使用してname
およびid
属性を問題なくマッピングできますが、モデルにリレーションRESTSerializer
を追加すると、次のように爆発します。events
Project
Error while loading route: TypeError: Cannot set property 'store' of undefined
at Ember.Object.extend.modelFor (http://localhost:3000/assets/ember-data.js?body=1:9813:23)
at Ember.Object.extend.recordForId (http://localhost:3000/assets/ember-data.js?body=1:9266:21)
at deserializeRecordId (http://localhost:3000/assets/ember-data.js?body=1:10197:27)
at deserializeRecordIds (http://localhost:3000/assets/ember-data.js?body=1:10211:9)
at http://localhost:3000/assets/ember-data.js?body=1:10177:11
at http://localhost:3000/assets/ember-data.js?body=1:8518:20
at http://localhost:3000/assets/ember.js?body=1:3404:16
at Object.OrderedSet.forEach (http://localhost:3000/assets/ember.js?body=1:3247:10)
at Object.Map.forEach (http://localhost:3000/assets/ember.js?body=1:3402:10)
at Function.Model.reopenClass.eachRelationship (http://localhost:3000/assets/ember-data.js?body=1:8517:42)
私の調査によると、これは、親 ID がないためEvent
、 a を aにマップする逆の関係が見つからないためと思われます。Project
これをサポートするために Ember Data で関係を作成することは可能ですか? projectId
または、ロードする前に各イベントにa を追加するようにシリアライザーを変更することは可能ですか?
私は Ember 1.5.0-beta.4 と Ember Data 1.0.0-beta.7+canary.f482da04 を使用しています。