В Rails, как увидеть все методы "path" и "url", добавленные маршрутизацией Rails?(обновление: использование консоли Rails) - PullRequest
47 голосов
/ 18 марта 2011

[обновление: не используя rake routes, просто чтобы немного лучше понять консоль Rails]

Похоже, что внутри "консоли rails" для Rails 3 мы можем использоватьcontroller, но в Rails 2.2 или 2.3 нам нужно использовать @controller

А в Rails 3 мы можем распечатать все маршруты, добавленные маршрутизацией Rails для эшафот foo:

ruby-1.9.2-p0 > puts controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n")
edit_foo_path
edit_foo_url
foo_path
foo_url
foos_path
foos_url
new_foo_path
new_foo_url

, но в Rails 2.3.8 он дает кучу formatted_foos_path и т. Д. И ничего не дает для Rails 2.2.2.Как заставить его распечатать для Rails 2.3.8 и 2.2.2?


Подробности для Rails 2.3.8:

ruby-1.8.7-p302 > puts @controller.public_methods.grep(/path|url/).grep(/foo/).sort.join("\n")
formatted_edit_foo_path
formatted_edit_foo_url
formatted_foo_path
formatted_foo_url
formatted_foos_path
formatted_foos_url
formatted_new_foo_path
formatted_new_foo_url

Ответы [ 3 ]

66 голосов
/ 18 марта 2011
helpers = Rails.application.routes.named_routes.helpers

Это даст вам все названные методы маршрута, которые были созданы.Затем вы можете выполнить helpers.map(&:to_s) и любое другое регулярное выражение, которое хотите получить для своих версий foo

9 голосов
/ 19 января 2015

Ну, в Rails 4 я использую rake routes.Вам это нужно?

5 голосов
/ 09 октября 2017

или загрузите localhost_path/rails/info/routes в браузере.

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