我正在使用 rails / ember / ember-data,并尝试侧载多个关联。
App.Plan = DS.Model.extend({
schedule: DS.belongsTo('App.Schedule'),
questions: DS.hasMany('App.Question')
});
App.Schedule = DS.Model.extend({
plan: DS.belongsTo('App.Plan'),
start: DS.attr('date'),
});
App.Question = DS.Model.extend({
name: DS.attr('string')
})
和以下 rails 序列化器:
class PlanSerializer < ActiveModel::Serializer
embed :ids, :include => true
attributes :id, :owner_id
has_one :schedule
has_many :questions
end
class QuestionSerializer < ActiveModel::Serializer
attributes :id, :name, :plan_id
end
class ScheduleSerializer < ActiveModel::Serializer
attributes :id, :start, :time_established, :plan_id
end
我收到以下错误:
Uncaught Error: assertion failed: Your server returned a hash with the
key schedules but you have no mapping for it
这是指什么“映射”?我正在尝试通过 /plans.json 提取所有信息
如果我注释掉所有日程安排的东西,计划/问题加载正常。但我就是无法让时间表正常运行。
我认为这与我嵌入多个 scheduleS(复数)但计划关联是单数的事实有关。我想这可能与客户端的多元化有关,并尝试了:
DS.RESTAdapter.configure("plurals", {
schedule: 'schedules'
});
...但没有帮助。很确定这不是问题,因为它不是不规则的复数形式。
它与返回的json的顺序有关吗?
这个 json 返回时间表、问题,然后是计划。虽然计划是“根”节点。
有任何想法吗?谢谢