6
我有一个博客应用程序,API调用用户“Users”,但我的Ember模型是“Author”。保存到Ember服务器时更改模型的JSON根
App.Author = DS.Model.extend({
name: DS.attr(),
posts: DS.hasMany('post', {async: true}),
email: DS.attr()
});
我映射传入的JSON与AuthorSerializer:
App.AuthorSerializer = DS.RESTSerializer.extend({
normalizePayload: function(type, payload) {
return this.translateRootKey('user', 'author', payload);
},
translateRootKey: function(server_word, client_word, payload) {
var response = {},
key = payload[server_word] ? client_word : Ember.String.pluralize(client_word),
value = payload[server_word] ? payload[server_word] : payload[Ember.String.pluralize(server_word)];
response[key] = value;
return response;
}
});
但我无法弄清楚如何改变我的POST根/ PUT当我坚持到服务器。我希望我的根是“用户”或“用户”(取决于具体情况)。服务器目前得到这个从灰烬作为它的参数:
{"author"=>{"name"=>"asdf", "email"=>"asdf"}, "user"=>{}}
我如何告诉灰烬使用“用户/秒”作为我的键名与服务器通话是什么时候?
例子:
{"user"=>{"name"=>"asdf", "email"=>"asdf"}}
这似乎在接收方,理查德A建议,下面,但问题涉及配置发送方。 –
是的,这个钩子在model.save()被发送到服务器之前调用 –
http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_serializeIntoHash “您可以使用此方法定制序列化为JSON的根键默认情况下,REST序列化程序发送驼峰化的根键。例如,您的服务器可能会期望使用下划线的根对象。 –