Railsのブラウザからのリクエストに一致したルートを確認する方法はありますか?
-
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"}
そこから、簡単なはずですよね?
所属していません StackOverflow