2

サイドローディングは、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: [{},...]
}
4

1 に答える 1

6

sideloadAsの代わりに試してくださいsideLoadAs(大文字ではありませんL)

于 2013-02-22T18:27:45.980 に答える