Я пытаюсь получить контроллер и имя действия на основе пути. У меня есть маршрут:
map.resources :permissions
Я думал, что мог использовать:
ActionController::Routing::Routes.recognize_path "/permissions/1"
Получить хеш как:
{ :controller => "permissions", :action => "show" }
Фактический хеш, который возвращается:
{ :controller => "permissions", :action => "1" }
Как я получаю корректное имя действия вместо просто моего переданного в идентификаторе? Диспетчер должен смочь достигнуть его так или иначе, или направляющие не работали бы, но я испытываю затруднения при определении местоположения, как это выполняется.
Что вам на самом деле нужно? Если вам действительно нужно имя действия и имя контроллера ... вы можете просто запросить
controller.controller_name
и
controller.action_name
. Это помогает или вам действительно нужно проанализировать строку, чтобы это сделать?