Подтвердить что ты не робот

Как получить все маршруты в моем приложении rails?

Можно ли получить все маршруты в моем приложении rails? Мне нужен вывод, например rake routes, и поместите результат в массив.

Возможно ли это? как?

4b9b3361

Ответ 1

Вы могли бы взглянуть на то, как рельсы выплевывают эти маршруты из задачи рейка. Он находится в /gems/rails/2.3.x/lib/tasks/routes.rake для Rails 2. В общем случае он делает в основном ActionController::Routing::Routes.routes, а затем допрашивает это.

Ответ 2

Ну, независимо от того, где вам это нужно, вы можете сделать:

routes = `rake routes`.split("\n")

Или даже:

routes = `rake routes`.split("\n").map{ |r| r.gsub(', ', ',').split(' ') }

Ответ 3

Чтобы распространить головную боль, чтобы это было реализовано, я сделал это на основе ответа @jordini:

 Rails.application.routes.routes.to_a.each do |rota|
   if rota.app.instance_variable_defined? '@defaults'
      perm = Permission.where({
        :acao => rota.defaults[:action],
        :controller => rota.defaults[:controller], 
        :verbo => rota.verb.source.to_s.gsub("^","").gsub("$","").downcase
      ).first_or_create
    end
 end

Это то, что я использовал для создания всех разрешений для моей веб-страницы сразу.