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 からすべての情報を取得しようとしています

スケジュールのすべてをコメントアウトすると、計画/質問が正常に読み込まれます。しかし、私はスケジュールを動作させることができません。

これは、複数のスケジュール(複数)を埋め込んでいるという事実と関係があると思いますが、プランの関連付けは単数です。これはクライアント側の複数形に関係しているのではないかと考え、次のことを試しました。

DS.RESTAdapter.configure("plurals", {
  schedule: 'schedules'
});

...しかし、助けにはなりませんでした。不規則な複数形ではないので、それは問題ではありません。

返されたjsonの順序と関係がありますか?

このjsonは、スケジュール、質問、そして計画を返しています。計画は「ルート」ノードですが。

何か案は?ありがとう

4

1 に答える 1