带有Rails和Ember的JSONAPI强大的参数

时间:2016-03-01 21:02:33

标签: ruby-on-rails-4 ember-data strong-parameters

我正在使用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的右侧参数中获取?我确实尝试为我正在尝试创建的模型添加关联,这是它开始失败的时候。但是,当它正常工作时我回过头来,但它已经无法正常工作了。

1 个答案:

答案 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