我正在使用Ember和ember-data以及rails api。我有一个createRecord()和save()用于正常工作的记录。用于在rails中创建记录的post请求的网络选项卡中的有效负载如下所示:{data: {attributes: { foo: 'bar' } }
。
在rails控制器中,我有如下强大的参数:params.require(:data).require(:attributes).permit(:foo)
,它运行良好一段时间。现在当我发送请求时,rails说param is missing or the value is empty: data
。如果我查看浏览器中的网络选项卡,请求的有效负载仍然与上述相同。如果我puts params
它只显示{"controller": "api/v1/answers", "action": "create"}
并且根本没有显示数据有效负载。
有没有理由为什么导轨现在没有从ember的右侧参数中获取?我确实尝试为我正在尝试创建的模型添加关联,这是它开始失败的时候。但是,当它正常工作时我回过头来,但它已经无法正常工作了。
答案 0 :(得分:10)
我通过进入rails api中的config/initializers/mime_types.rb
文件并将文件更改为以下内容来修复此问题:
api_mime_type = %W(
application/vnd.api+json
text/x-json
application/json
)
Mime::Type.unregister :json
Mime::Type.register 'application/json', :json, api_mime_type