当我使用ember-data向一对多字段添加新记录时,我试图触发适当的PUT请求。
var track = genre.get('tracks').createRecord({name: "Hit me baby one more time!"})
track.get('transaction').commit()
这会将PUT请求发送到“ / genres”,并发送所有流派属性和其他曲目。
// PUT /genres
{"genre":{"name":"Pop","tracks": [{"name":"Hit me baby one more time!","genre_id":null}]}}
但是我宁愿……。喜欢:
// PUT /tracks
{"track": {"name":"Hit me baby one more time!", "genre_id":1}}}
如果可能,我还要为/ tracks上的PUT请求自动添加一个附加参数。这些是我的模型:
App.Genre = DS.Model.extend({
name: DS.attr('string'),
tracks: DS.hasMany('App.Track')
})
App.Track = DS.Model.extend({
genre: DS.belongsTo('App.Genre'),
uri: DS.attr('string')
})
最佳答案
不好的是,在REST适配器中,我有以下设置:
DS.RESTAdapter.map('App.Genre', {
tracks: { embedded: 'always' }
})
将
embedded
设置为load
解决了我的问题。关于javascript - 创建新记录并使用ember-data提交事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17978315/