2

私はこのリンクを持っています:

railsapp/api/details.php?id=1&app=dvd 

Rails以外の外部サーバーの別のページにリダイレクトする必要があること:

non-railsapp/api/details.php?id=1&app=dvd 

これをroutes.rbファイルに入れると:

  match '/api/details.php' => redirect("non-railsapp/api/details.php")

リダイレクトは機能しますが、パラメーターは渡されません。パラメータも渡されるようにするには、どのような魔法が必要ですか?

/api/実際には、すべてのパラメーターを使用して外部サイトにすべてをリダイレクトできるようになると便利です。それは私の人生をずっと楽にするでしょう。

Rails Routing に関するドキュメントを読みましたが、このような例は見つかりません。

ありがとう。

4

2 に答える 2

3

次のようなことを試してください:

get "/api/details.php/:id/:app" => redirect{ |p, req| "non-railsapp/api/details.php/#{p[:id]}/#{p[:app]}" }

編集

パラメータをオプションにすることもできます。

get "/api/details.php(/:id(/:app))" => redirect{ |p, req| "non-railsapp/api/details.php(/#{p[:id]}(/#{p[:app]}))" }
于 2013-08-02T13:37:42.850 に答える
2

次のことができます。

url = URI(" http://www.google.com/ ")

url.query = URI.encode_www_form(:q => "クエリ")

#http://www.google.com/?q=query へのリダイレクト

redirect_to url.to_s

于 2016-05-06T20:28:17.297 に答える