サイドローディングは、hasManyリレーションシップのアプリで機能していますが、belongsToリレーションシップでは機能しません。文書化された方法を使用しようとしてDS.RESTAdapter.configure()
いますが、効果がないようです。私が得ているエラーはですUncaught Error: assertion failed: Your server returned a hash with the key occasions but you have no mapping for it
。
hasMany
サイドロードマッピングを指定する必要はないことに注意してください。その要求は機能するだけです。App.Occasion.find();
正常に動作します。App.Reminder.find();
エラーをスローします。
モデル
App.Reminder = DS.Model.extend(
occasion: DS.belongsTo('App.Occasion')
...
)
App.Occasion = DS.Model.extend(Ember.Validations,
reminders: DS.hasMany('App.Reminder')
...
)
Store.js.coffee
DS.RESTAdapter.configure('App.Occasion',
sideLoadAs: 'occasions'
)
App.Store = DS.Store.extend(
revision: 11
adapter: DS.RESTAdapter.create()
)
JSON(場合によって)
{
reminders: [{},...],
occasions: [{reminders: [1,2,...]},...]
}
JSON(リマインダー用)
{
reminders: [{occasion_id: 1},...],
occasions: [{},...]
}