Railsのブラウザからのリクエストに一致したルートを確認する方法はありますか?

StackOverflow https://stackoverflow.com/questions/811314

  •  03-07-2019
  •  | 
  •  

質問

routes.rb ファイルには、いくつかのルートがあります。ユーザーが行ったリクエストに対してどれが一致したかを知りたい。

たとえば、routes.rbには次のルートがあります:

map.connect ":controller/:action"
map.connect ":controler/:action/:id"

また、 a という名前のコントローラーと first という名前のアクションがある場合、ユーザーが http:// whatever / a / first :controller /:action ルートが選んだ。

リクエストに対してこれを行うことはできますか?

役に立ちましたか?

解決

自分が現在いるコントローラー/アクションを知りたいだけなら、コントローラーは controller_name および action_name メソッドを提供します。そのため、次のようにすることができます。

# in application_controller.rb
before_filter :set_where_am_i
def set_where_am_i
  @where_am_i = "#{controller_name}/#{action_name}"
end

# in views/layouts/application.erb, somewhere in your html
# (here I choose the <title>)

<head><title>Here: <%= @where_am_i %></title>

他のヒント

私が見つけた最も近いものは、ログファイルにありました。リクエストごとに、どのコントローラーのどのアクションが一致したかがわかります。 次のようなものが表示されます。

Parameters: {"action"=>"show", "id"=>"2", "controller"=>"mycontroller"}

そこから、簡単なはずですよね?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top