我对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中已经具有此代码。您可能要检查您正在运行的版本并升级到该版本,而不是我上面建议的更改。

09-20 07:47