0

我正在使用 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 返回时间表、问题,然后是计划。虽然计划是“根”节点。

有任何想法吗?谢谢

4

1 回答 1

0
DS.RESTAdapter.configure('App.Schedule',
  {sideloadAs: 'schedules'}
);
于 2013-04-03T18:46:22.503 回答