Разбор пути в рельсах - PullRequest
       26

Разбор пути в рельсах

5 голосов
/ 26 апреля 2010

Я ищу метод для разбора пути маршрута, как это:

ActionController::Routing.new("post_path").parse
#=> {:controller => "posts", :action => "index"}

должно быть напротив url_for

Upd
Я узнал: Что является противоположностью url_for в Rails? Функция, которая берет путь и генерирует интерпретированный маршрут?

ActionController::Routing::Routes.recognize_path("/posts")

Так что теперь мне нужно конвертировать posts_path в "/ posts"

Ответы [ 2 ]

12 голосов
/ 06 апреля 2012

В Rails 3 вы можете делать следующее:

Rails.application.routes.recognize_path "/accounts/1"
# {:action=>"show", :controller=>"accounts", :id=>"1"}

Использование ActionController::Routing::Routes.recognize_path продолжал бросать

ActionController :: RoutingError Исключение: не найдено ни одного маршрута "/ account / 1

5 голосов
/ 26 апреля 2010

Есть такой метод:

>> ActionController::Routing::Routes.recognize_path("/posts/")
=> {:action=>"index", :controller=>"posts"}

Если у вас есть только строка с вашим маршрутом (например, "posts_path"), то я думаю, что в контексте, который вы используете, вы должны быть в состоянии сделать

ActionController::Routing::Routes.recognize_path(send("posts_path".to_sym))

Между прочим, это тоже было полезно для меня:)

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