我对GET-request => / checklists有这个json响应
{"check_lists": [
{
"id": 1,
"name": "Example-list-1",
"description": ""
},
{
"id": 2,
"name": "Example-list-1",
"description": ""
}
}
为了处理该服务器的强调命名约定,我使用ActiveModelAdapter和ActiveModelSerializer。
我遇到的问题是request-url。
我的模型名为App.CheckList = DS.Model.extend({...,这就是开始变得复杂的地方。
如果我打电话
return this.store.find('checkList');
在我的路线中,Ember向/ checkLists路线而不是/ check_lists =>启动GET请求
GET http://localhost:3000/checkLists 404 (Not Found)
Error while processing route: checklists
出乎意料的是这个错误
buildURL: function(type, id) {
return this._super(type, id);
},
未使用,因此我没有机会修改网址。
有谁知道如何将请求更改为/ check_lists?
最佳答案
驼峰大小写和下划线大小写的映射是在ActiveModelAdapter.pathForType
函数中完成的。您可以覆盖它并在那里进行更改。例如,要从驼峰案变为强调案:
App.ApplicationAdapter = DS.ActiveModelAdapter.extend({
pathForType: function(type) {
var decamelized = Ember.String.decamelize(type);
var underscored = Ember.String.underscore(decamelized);
//Alternatively, you can change urls to dasherized case using this line
//var dasherized = Ember.String.dasherize(decamelized);
return Ember.String.pluralize(underscored);
}
});
奇怪的是,最新的Ember Data在ActiveModelAdapter中已经具有此代码。您可能要检查您正在运行的版本并升级到该版本,而不是我上面建议的更改。