2015-12-23 6 views
7

大きなJSON PUTリクエストをSidekiqでバックグラウンドで処理したいと考えています。そのため、リクエストの本文から着信JSONを自動的に解析する必要はありません。RailsはPOST/PUT/PATCH本体のJSON解析を無効にします

コントローラー/アクションベースのレベルでこれを達成するベストプラクティスは?

+3

そのリクエストに別のコンテンツタイプを使用しても良いでしょうか? –

答えて

8

私が知っている限り、これはRackミドルウェアを介して行われているので、1つのコントローラ/アクションですぐに無効にすることはできません。

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

ます、もちろん、パラメータを解析し、独自のミドルウェアを書くことができ、またはJSON MIMEタイプのカスタムパーサーを指定:あなたはこの男がやったことと同様のActionDispatch::ParamsParserにパッチを適用することができます。

最後に、JSON解析をすべて無効にすることができます。あなたのconfig/application.rbに次のように追加してください:

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

それはアプリケーション全体に変更を適用するでしょう、おそらくそれを望んでいない、チェックアウトhttp://icelab.com.au/articles/wrapping-rack-ミドルウェア--to-exclude-certain-urls-for-rails-ストリーミングレスポンス/ URIに応じてミドルウェアの変更を適用する方法について//http://icelab.com.au/articles/wrapping-rack-middleware-to-exclude-certain-urls-for-rails-streaming-responses/ – bbozo

関連する問題