我想手动指定一个PUT路由来保存我的模型。烬有可能吗?
例如,我有一个会话模型,当我调用conversation.save()时,我不希望它搜索PUT conversations/someMail/conversations/:id,而是手动告诉ember使用PUT/conversations/:id。
这是我的命名空间:
App.ApplicationAdapter.reopen({
namespace: 'conversations/someEmail'
});
路由器:
App.Router.map(function(){
//Routing list to raw namespace path
this.resource('conversations', { path : '/' }, function() {
this.resource('conversation', { path : '/:conversation_id'});
});
});
模型:
App.Conversation = DS.Model.extend({
readStatus: DS.attr('string'),
url: DS.attr('string'),
status: DS.attr('string'),
lastMessage: DS.attr('string'),
createdAt: DS.attr('string'),
timeAgoElement: DS.attr('string'),
customer: DS.belongsTo('customer'),
content: DS.attr('array'),
});
您可以通过重写buildURL:
来定制适配器中的URL。App.ApplicationAdapter.reopen({
buildURL: function(type, id, record, requestType) {
if (type === 'conversation' && requestType === 'PUT') {
return '/conversations/' + id;
}
return this._super.apply(this, arguments);
}
});
它的确切签名取决于你的ember版本,所以在你的应用程序中尝试一下。