rails proyecto libro formularios español crear ruby-on-rails ruby routes

ruby-on-rails - proyecto - scaffold ruby on rails



¿cómo obtener todas las rutas en mi aplicación de rieles? (3)

¿Puedo obtener todas las rutas en mi aplicación de rieles? Necesito una salida como rake routes y pongo el resultado en una matriz.

¿Es posible? ¿cómo?


Bueno, independientemente de donde lo necesites, podrías hacer:

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

O incluso:

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


Podrías echarle un vistazo a cómo los rieles escupían esas rutas desde la tarea de rake. Está en /gems/rails/2.3.x/lib/tasks/routes.rake para Rails 2. Parece que básicamente está haciendo ActionController::Routing::Routes.routes en el caso general y luego lo interroga.


Con el fin de diseminar el dolor de cabeza que suponía hacer eso, lo hice basándome en la respuesta de @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

Esto es lo que he usado para crear todos los permisos para mi página web a la vez.