2

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

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

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

a という名前のコントローラーとfirstという名前のアクションがある場合、ユーザーがhttp://whatever/a/firstにアクセスしたときに、 :controller/:actionルートが選択されたことを確認したいと思います。

どんなリクエストでもできますか?

4

2 に答える 2

2

現在のコントローラー/アクションを知りたいだけの場合は、コントローラーが提供するメソッドcontroller_nameaction_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>
于 2009-05-01T13:32:27.243 に答える
1

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

パラメータ:{"action" => "show"、 "id" => "2"、 "controller" => "mycontroller"}

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

于 2009-05-01T13:31:55.950 に答える