He reescrito las rutas rastrillo ligeramente comando para generar una versión html un poco más útil de la salida de rutas rastrillo
Crear un archivo pretty_routes.rake
y poner esto en lib/tasks/
y llame rake pretty_routes
y debe ser ligeramente mejor
desc 'Pretty print out all defined routes in match order, with names. Target specific controller with CONTROLLER=x.'
task :pretty_routes => :environment do
all_routes = ENV['CONTROLLER'] ? ActionController::Routing::Routes.routes.select { |route| route.defaults[:controller] == ENV['CONTROLLER'] } : ActionController::Routing::Routes.routes
routes = all_routes.collect do |route|
name = ActionController::Routing::Routes.named_routes.routes.index(route).to_s
verb = route.conditions[:method].to_s.upcase
segs = route.segments.inject("") { |str,s| str << s.to_s }
segs.chop! if segs.length > 1
reqs = route.requirements.empty? ? "" : route.requirements.inspect
{:name => name, :verb => verb, :segs => segs, :reqs => reqs}
end
File.open(File.join(RAILS_ROOT, "routes.html"), "w") do |f|
f.puts "<html><head><title>Rails Routes</title></head><body><table border=1>"
f.puts "<tr><th>Name</th><th>Verb</th><th>Segments</th><th>Requirements</th></tr>"
routes.each do |r|
f.puts "<tr><td>#{r[:name]}</td><td>#{r[:verb]}</td><td>#{r[:segs]}</td><td>#{r[:reqs]}</td></tr>"
end
f.puts "</table></body></html>"
end
`open #{File.join(RAILS_ROOT, "routes.html")}`
end
La penúltima línea solo funciona en Mac OSX y en rieles 2.x, pero abre automáticamente el archivo en su navegador. Si se encuentra en una plataforma diferente, tendrá que cambiar el comando.
Si está ejecutando rieles 3.x, la segunda a la última línea debe ser
`open #{File.join(Rails.root, "routes.html")}`
ITs listo. Y absolutamente te felicito por esto, pero no me gusta obtener todas las rutas a la vez. Suelo ir por 'rutas de rake | grep somethingSpecific' – Trip
Esto parece roto con rails3? rake abortado! método indefinido 'segmentos 'para # (Vea el rastro completo ejecutando la tarea con --trace) –
Lichtamberg
Lichtamberg: absolutamente. Todavía estoy en Rails 2.3.x, rieles 3 rutas completamente modificadas, por lo que tendrás que modificar la solución para que funcione. –