我正在构建一个Rails 5后端API,它将接收来自我的Ember应用程序的请求。但是我在让Ember以我的Rails服务器理解的方式格式化请求时遇到了一些麻烦。
默认情况下,Rails创建控制器以期望这种格式的参数,假设模型是a,例如Car
:
"car": {
"id": "1",
"name": "Foo",
"bar": "Bar",
...
}
然而,看起来Ember正在以这种格式发送请求:
"data": [
{
id: "1",
type: "cars",
attributes: {
"name: "Foo",
"bar": "Bar",
...
}
]
如何使Ember以我的Rails服务器能理解的方式发送请求有效负载?谢谢。
答案 0 :(得分:1)
您的Rails正在接受REST适配器格式,为了使其正常工作,您的适配器应扩展DS.RESTAdapter
,并且序列化程序应扩展DS.RESTSerializer
。默认情况下,它会附带JSONAPIAdapter
和JSONAPISerializer
。
如果您可以控制后端代码,那么考虑编写json-api格式的响应,该ember将开箱即用。
参考:
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTAdapter
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTSerializer
https://emberjs.com/api/ember-data/2.14/classes/DS.JSONAPIAdapter https://emberjs.com/api/ember-data/2.14.9/classes/DS.JSONAPISerializer