我已将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
在此之前,我定义了我的把手,路由器,路线,型号,商店和适配器'申请单'单数(没有附加' s')它工作正常。
目标
http://metabuyer.apiary-mock.com/apps/purchasing/requisitions
它实际上让我想知道为什么RESTAdapter附加了一个' S' (申请单)在URL的末尾,但因为它的工作原理(以及来自模拟API的URL),我并没有真正关心它。
现在我想遵循命名惯例,所以我将我的把手,路由器,路线,型号,商店和适配器的名称更改为“请购单”'然后发生错误。
感谢您在高级
中提供的帮助答案 0 :(得分:0)
您的问题是因为适配器和序列化程序不应该是多元化的,请参阅:http://emberjs.com/guides/models/customizing-adapters/
应该是Metabuyer.RequisitionAdapter
和Metabuyer.RequisitionSerializer
默认情况下,ember数据会将模型名称复数化以用于路径。因此,对于Requisition
模型,它会向/requisitions
如果要覆盖它,可以更改DS.RESTAdapter
上的pathForType
属性并返回您想要的任何路径。