Encontre rotas no console do Rails

Se você está trabalhando com aplicativos Rails 3 ou 4, pode achar isso útil.

A maioria de nós sabe, como $rake routesé legal , mas aqueles de vocês que trabalham com aplicativos maiores provavelmente estão incomodados com tempos de carregamento lentos do aplicativo Rails, que são necessários para tarefas de rake. Coloque este código em seu ~/.irbrcarquivo para obter uma solução leve e independente de aplicativo para visualizar e filtrar rotas:

if defined? Rails

if Rails::VERSION::STRING >= "4"

# returns an array of routes in Rails 4
def formatted_routes
r
= Rails.application.routes.routes
i
= ActionDispatch::Routing::RoutesInspector.new(r)
f
= ActionDispatch::Routing::ConsoleFormatter.new
i
.format(f).split("n")
end

else
require 'rails/application/route_inspector'

# returns an array of routes in Rails 3
def formatted_routes
inspector
= Rails::Application::RouteInspector.new
inspector
.format(Rails.application.routes.routes)
end

end

# filter and print out the routes
def routes(filter = nil)
Rails.application.reload_routes!
formatted
= formatted_routes
if filter
formatted
.select!{ |r| r.match(filter) }
end
puts formatted

end
end

Essência bruta para cópia fácil

Uso:

> routes
=> prints all routes
> routes /GET.*user/i
=> prints routes matching a given regex
> routes "user"
=> matches strings as well

Soluções alternativas: zeus , sextant