31

request.referrerRails で完全なリファラー URL を取得するために使用できることはわかっていますが、URL からコントローラー名を取得する方法はありますか?

http://myurl.com/profiles/2の URL に「プロファイル」が含まれているかどうかを確認したい

正規表現を使用してそれを行うことができることは知っていますが、もっと良い方法があるかどうか疑問に思いました。

4

3 に答える 3

105

request.referrer現在のリクエストの前にリクエストのURLが表示されることに注意してください。request.referrerとはいえ、コントローラー/アクション情報に変換する方法は次のとおりです。

Rails.application.routes.recognize_path(request.referrer)

それはあなたに次のようなものを与えるはずです

{:subdomain => "", :controller => "x", :action => "y"}
于 2013-02-03T10:15:04.847 に答える
-8

コントローラー内にはcontroller_name、名前のみを返すメソッドがあります。あなたの場合、「プロファイル」が返されます。params[:controller]同じ文字列を返す which を使用することもできます。

于 2013-02-02T15:21:35.527 に答える