Rails禁用POST / PUT / PATCH主体的JSON解析

时间:2015-12-23 04:04:03

标签: ruby-on-rails json ruby-on-rails-4 configuration

我想接受一个大的JSON PUT请求,并在后台使用Sidekiq完全处理它。因此,我不想从请求的主体中自动解析传入的JSON。

在控制器/基于操作的级别上完成此操作的最佳做​​法是什么?

1 个答案:

答案 0 :(得分:8)

据我所知,这是通过Rack中间件完成的,所以我不认为你只需开箱即可为一个控制器/操作禁用它。你可以修补ActionDispatch::ParamsParser类似于这个人做的事情:

http://www.jkfill.com/2015/02/21/skip-automatic-params-parsing/

当然,您可以编写自己的中间件来解析参数,或者为JSON MIME类型指定自定义解析器。

最后,您可以一起禁用JSON解析。在你的config / application.rb中添加:

 config.middleware.swap ActionDispatch::ParamsParser, ActionDispatch::ParamsParser, Mime::JSON => nil