Есть ли способ узнать, какой маршрут соответствует запросу из браузера в Rails? - PullRequest
2 голосов
/ 01 мая 2009

В моем файле rout.rb есть несколько маршрутов. Я хотел бы знать, какой из них был найден для любого запроса, который мог сделать пользователь.

Например, в route.rb у вас есть следующие маршруты:

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

и если у меня есть контроллер с именем a и действие с именем first , когда пользователь переходит на http://whatever/a/first, я бы хотел увидеть : контроллер /: действие выбран маршрут.

Могу ли я сделать это для любого запроса?

Ответы [ 2 ]

2 голосов
/ 01 мая 2009

Если вы просто хотите узнать, в каком контроллере / действии вы находитесь, контроллер предоставляет методы 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>
1 голос
/ 01 мая 2009

Самая близкая вещь, которую я мог найти, была в файлах журнала. Для каждого запроса вы увидите, какое действие какого контроллера соответствует. Вы увидите что-то вроде этого:

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

Оттуда должно быть легко, верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...