Вот один вкладыш, который дает вам все контроллеры, основанные на файле маршрутов. Я обнаружил, что у меня есть нулевое значение, поэтому я добавил спасение, а затем отклонил любой из этих спасенных пустых. 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
Это один для тех, кто находится в пространстве имен admin.
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
Вы поняли это из? Мне нужно также вернуть массив всех имен контроллеров. – stephenmurdoch