Я создаю адаптер для обертки 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)
Судя по моему исследованию, это связано с тем, что он не может найти обратное отношение для сопоставления Event
обратно с Project
, потому что нет идентификатора родителя.
Можно ли создать отношение в Ember Data для поддержки этого? Или можно изменить сериализатор, чтобы он добавлял projectId
к каждому событию перед загрузкой?
Я использую Ember 1.5.0-beta.4 и Ember Data 1.0.0-beta.7+canary.f482da04.