保存对象时如何为belongsTo关联指定密钥名称?

时间:2014-02-21 19:44:34

标签: ember.js ember-data

我有帖子和评论模型:

App.Post = DS.Model.extend({
  body: DS.attr('string'),
  comments: DS.hasMany('comment')
});

App.Comment = DS.Model.extend({
  body: DS.attr('string'),
  post: DS.belongsTo('post')
})

当我创建新评论并保存时:

var comment = this.store.createRecord('comment');
comment.set('post', post);
comment.save();

它在请求中发出post: 1数据请求。如何更改它以使用post_id: 1发出请求?

1 个答案:

答案 0 :(得分:1)

我认为这可能是因为您使用的是默认的Ember数据适配器,即RESTAdapter。

RESTAdapter具有与标准ActiveModel :: Serializer约定不同的约定,这就是为什么它将发送post: 1而不是post_id: 1

尝试将默认适配器切换到ActiveModelAdapter

App.ApplicationAdapter = DS.ActiveModelAdapter.extend({
   namespace: 'api'
})

可在此处找到文档http://emberjs.com/api/data/classes/DS.ActiveModelAdapter.html