web-dev-qa-db-ja.com

railsで、パラメータ値をクエリ文字列としてredirect_toに渡す

これは簡単なはずですが、簡単な答えが見つからないようです。

現在のリクエストからredirect_to呼び出しにparam値を渡すにはどうすればよいですか? GETリダイレクトのクエリ文字列に渡したいフォーム値がいくつかあります

私は次のようなことをしたいと思います:

redirect_to @thing, :foo => params[:foo]

に送信されます:

http://things/4?[foo][key1]=val1&[foo][key2]=val2

ありがとう!

また、redirect_to:backでこれをどのように処理できますか?

redirect_to :back, :foo => params[:foo]
28
Justin

redirect_to の「Record」形式は、応答ステータスにのみ2番目の引数を使用します。 'String'形式など、別の形式のredirect_toを使用する必要があります。例えば。:

redirect_to thing_path(@thing, :foo => params[:foo])

これは、前述のようにネストされたparams[:foo]パラメータに対して機能します。または、Drewが以下にコメントしているように、 polymorphic_url (または_path)を使用できます。

redirect_to polymorphic_path(@thing, :foo => params[:foo])
37
Jordan Brough

ジョーダンの答えに追加するには:

@thingのオブジェクトの種類がわからない場合は、ユニバーサルpolymorphic_urlメソッドを使用できます。これは、とにかくオブジェクトをredirect_toに渡すときに内部的に呼び出されるメソッドです。

4
Drew Blas