Как программно перечислить все контроллеры и действия в двигателях RoR? - PullRequest
1 голос
/ 11 ноября 2010

Этот вопрос является своего рода расширением того, что было затронуто в этом обсуждении: Как программно перечислить все контроллеры в Rails

Кажется, что большинство решений для вывода списка приложенийконтроллеры и действия используют импорт и синтаксический анализ # {RAILS_ROOT} /app/controllers.

Я собираю и использую движки RoR, которые находятся в # {RAILS_ROOT} / vendor / plugins /

Как их можно включить, чтобы перечислить контроллеры и действия каждого двигателя?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Странно, как простое написание вопроса может помочь вам разобраться.Я смог заставить это работать, просто включив контроллеры двигателя, запустив:

Find.find(File.join(RAILS_ROOT, 'vendor/plugins/'))  { |name|  
    require_dependency(name) if /_controller\.rb$/ =~ name
}
0 голосов
/ 10 апреля 2012

Это довольно старый, и рельсы 3 изменили многое.Мне пришлось пройти через 3 разных способа сделать это, поскольку все изменилось.В настоящее время на рельсах 3.2.2 это было мое лучшее решение:

Rails.application.reload_routes!
all_routes = Rails.application.routes.routes

require 'rails/application/route_inspector'
inspector = Rails::Application::RouteInspector.new
for routeRule in inspector.format(all_routes, ENV['CONTROLLER'])
    # Parse routeRule to get your values
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...