Список маршрутов контроллеров в Rails 3? - PullRequest
1 голос
/ 23 октября 2010

Что я пытаюсь сделать:

Я создаю несколько контроллеров, например:

  • Home
  • О
  • Галерея
  • Контакт

Теперь я хочу создать навигацию автоматически.Так есть ли способ программно получить список контроллеров / действий для создания этой навигации?

Я не хочу исправлять навигацию каждый раз, когда добавляю контроллер.

Ответы [ 2 ]

1 голос
/ 29 декабря 2010

Вы можете попробовать что-то вроде этого:

HomeController.action_methods.each do |action|
  url_for(:action => action)
end
0 голосов
/ 08 августа 2014

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

Rails.application.routes.routes.collect { |r| r.defaults[:controller] rescue '' }.reject! { |c| c.empty? }.uniq 

Добавлен заголовок, чтобы сделать их более подходящими для вашей навигации.

Rails.application.routes.routes.collect { |r| r.defaults[:controller].titlecase rescue '' }.reject! { |c| c.empty? }.uniq 

Это только для тех, кто находится в пространстве имен администратора.

Rails.application.routes.routes.collect { |r| r.defaults[:controller].titlecase rescue '' }.reject { |c| c.empty? }.uniq.reject { |n| !n.include?('Admin/')  }.map { |i| i.gsub('Admin/', '') }.sort
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...