使用自定义mime类型的奇怪Rails行为

时间:2014-07-03 21:20:46

标签: ruby-on-rails ruby curl ruby-on-rails-4 mime-types

我正在使用Ruby on Rails 4.1,我正在尝试使用自定义mime类型实现API。也就是说,在config/initializers/mime_types.rb中我注册了一个别名,如下所示:

Mime::Type.register_alias 'application/json', :my_json

从另一个系统我试图通过运行HTTP PUT请求以curl访问API,这样:

curl http://www.my_api.org/articles.my_json --request PUT --header "Content-Type: application/json" --data-binary '{\"key\": {\"a\": \"1\", \"b\": \"2\"}}'

但是,通过检查我的Rails应用程序中的ArticlesController参数,我得到以下输出(注意:article参数是“不需要的”,并且那些参数与“想要的”key参数重复):

Parameters: {"key": { "a"=>"1", "b"=>"2" }, "article": { "a"=>"1", "b"=>"2" }}

有什么问题?这是一个错误吗?我该如何解决?


注意:我已经通过执行HTTP GET请求实现并访问其他类似的API,并且所有工作都按预期工作。只有在我执行HTTP PUT请求时才会出现问题。

1 个答案:

答案 0 :(得分:0)

  

@rafaelfranca - 不,这不是一个错误。这是wrap_parameters的工作原理。您可以在应用config/initializers/wrap_parameters.rb中禁用此文件。

请参阅github