Есть ли способ узнать, какой маршрут соответствует запросу из браузера в Rails?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

и если у меня есть контроллер с именем a и действие с именем first , когда пользователь переходит на http: // what / 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