我将我的RESTAdapter定义如下
Metabuyer.RequisitionsAdapter = DS.RESTAdapter.extend({
namespace: "apps/purchasing",
host: 'http://metabuyer.apiary-mock.com'
});
Metabuyer.RequisitionsSerializer = DS.RESTSerializer.extend({
normalizePayload: function(payload) {
return payload['data'];
}
});
加载页面时,我收到以下错误
GET http://localhost:9000/requisitions 404 (Not Found)
它不是目标
http://metabuyer.apiary-mock.com/apps/purchasing/requisitions
在此之前,我定义了我的车把,路由器,路由,型号,商店和适配器与'requisition‘单数(没有附加's')它工作得很好。
它的目标是
http://metabuyer.apiary-mock.com/apps/purchasing/requisitions
它实际上让我想知道为什么RESTAdapter会在网址的末尾附加一个'S‘(requisitionS),但因为它是有效的(而且,这是mock API中的网址),我并不太关心它。
现在我想遵循命名约定,所以我将我的把手、路由器、路由、型号、商店和适配器的名称更改为'requisitions‘,然后错误就发生了。
感谢您在高级课程中的帮助
发布于 2014-10-02 22:40:24
您的问题是适配器和序列化程序不应该是复数,请参阅:http://emberjs.com/guides/models/customizing-adapters/
应该是Metabuyer.RequisitionAdapter
和Metabuyer.RequisitionSerializer
默认情况下,ember数据将复数形式的模型名称用于路径。因此,对于Requisition
模型,它将向/requisitions
发出请求
如果您想覆盖它,可以更改DS.RESTAdapter
上的pathForType
属性并返回您想要的任何路径。
https://stackoverflow.com/questions/26155173
复制相似问题