4

私はこれを解決することはできません。

url = "www.mysite.com/?param1=abc"

redirect_to(url, :param2 => 'xyz')

### Should this go to - www.mysite.com/?param1=abc&param2=xyz

それとも私は何かが足りないのですか?うまくいかないようですか?

4

3 に答える 3

11

ドキュメントから:

redirect_to(options = {}、response_status = {})

オプションで指定されたターゲットにブラウザをリダイレクトします。このパラメーターは、次の3つの形式のいずれかを取ることができます。

ハッシュ-URLは、オプションを指定してurl_forを呼び出すことによって生成されます。

レコード-URLは、オプションを指定してurl_forを呼び出すことによって生成されます。このオプションは、そのレコードの名前付きURLを参照します。

protocol://(http://など)またはプロトコル相対参照(//など)で始まる文字列-リダイレクトのターゲットとして直接渡されます。

最初の引数として文字列を渡しているので、3番目のオプションを使用しています。2番目のパラメーターは、response_statusパラメーターの値として解釈されます。

したがって、リダイレクトが(同じアプリへの)内部リダイレクトである場合は、スキームとホスト名を指定する必要はありません。使用するだけ

redirect_to root_url(param1 => 'abc', param2 => 'xyz')

外部URLの場合は、リダイレクトする前に完全なURLを作成します。

url = "www.mysite.com/?param1=abc&params2=xyz"
redirect_to url
于 2012-08-16T09:23:39.770 に答える
4

redirect_toはRuby関数ではありませんが、RubyonRailsで一般的に使用されています。ここで多くの実用的な例を含むドキュメントを見つけることができます。

プレーンなRuby内でWebサイトを開きたい場合は、「open-uri」クラスを使用します。そのドキュメントはここにあります

redirect_toこれが、プレーンなRubyで機能しない理由を理解するのに役立ち、Railsの有無にかかわらず使用するのに役立つことを願っています。

于 2015-05-13T09:26:19.673 に答える
2

古いパラメータをマージして送信しない限り、古いパラメータについてはわかりません。

url = "www.mysite.com/?param1=abc"
p = params.merge({:param2 => 'xyz'})
redirect_to(url, p)
于 2012-08-16T11:29:01.540 に答える