我想接受一个大的JSON PUT请求,并在后台使用Sidekiq完全处理它。因此,我不想从请求的主体中自动解析传入的JSON。
在控制器/基于操作的级别上完成此操作的最佳做法是什么?
答案 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