2013-05-17 10 views
5

私は、Content-Type: "application/x-www-form-urlencoded"を使ってRails 4アプリケーションにデータを投稿すると、request.body.readで要求の本文を取得できます。Rails 4とcontent-type application/jsonで読み込む前にrequest.bodyに巻き戻しが必要か、それとも新しいアプローチがありますか?

しかし、 Content-Type "application/json"のデータで、request.body.rewindを最初に呼び出さない限り、request.body.readは空白です。

つの質問:

1)どのように私は最初のストリーム上の巻き戻しを呼び出すことなく、生のリクエスト本文を得るのですか?

2)レール(またはラックを停止することが可能である)は、クライアントがレール4解析されたJSONなどレール3にそのコンテンツタイプアプリケーション/ JSON

注意を送信するとき、要求本体にJSONを解析paramsでは利用可能ですが、request.body.readには巻き戻しが最初に必要ありません。

答えて

4

にこのis indeed a bugをそれを修正するように見えました。修正はマスターに統合されており、おそらく4.0.1でポップアップするはずです。

+0

ありがとうございました!私の頭をしばらく壁にぶつけていた。 –

+1

Woah、遅く受け入れて申し訳ありません!私はこの質問を忘れてしまった! –

0

ActionDispatch :: ParamsParserのバグかもしれません。 config/application.rbに以下を置く は

config.middleware.delete ActionDispatch::ParamsParser 
2

request.body.readの代わりにrequest.envを使用します。

関連する問題