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 ~/.irbrc
arquivo 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