有没有办法看到哪个路由匹配Rails中的浏览器请求?

时间:2009-05-01 13:21:13

标签: ruby-on-rails debugging routes

在我的 routes.rb 文件中,我有很多路线。我想知道哪一个与用户可能提出的任何请求相匹配。

例如,在routes.rb中,您有以下路由:

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

如果我有一个名为 a 的控制器和一个名为的行动,当用户转到 http://whatever/a/first 时,我希望看到:controller /:action 路由被选中。

我可以为任何请求这样做吗?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

我能找到的最接近的东西是日志文件。您将在每个请求中看到哪个控制器匹配的操作。 你会看到这样的东西:

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

从那里,它应该很容易,对吧?