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は、スケジュール、質問、そして計画を返しています。計画は「ルート」ノードですが。
何か案は?ありがとう