Parche para Rails: Rutas predeterminadas en español
Hace poco en Rails edge agregaron la opción de crear rutas para recursos con nombre de controlador y ruta del controlador distintas. Me explico mejor así:
[ruby]
map.resources :messages, :as => ‘mensajes’
# Antes para obtener algo similar hacias esto (y esto no creaba una ruta “RESTful”):
map.connect ‘mensajes/:id/:action’, :controller => ‘messages’
[/ruby]
Esto te permite tener rutas como /mensajes/… en lugar de /messages/… y a la vez aprovechando métodos “RESTful”.
El problema ahora era que tendrias rutas como “/mensajes/new” y “/mensajes/edit”… eso no se ve muy bien.
Pregunte en la lista de Rails Core y me dijeron que podía crear un parche, y es lo que hice, pero ahora necesito que lo prueben y voten por el para que lo incluyan en Rails. Aquí esta el ticket:
“http://dev.rubyonrails.org/ticket/11181″:http://dev.rubyonrails.org/ticket/11181
Si no tienen inconvenientes, agregen un comentario con el texto “+1″.
Bueno, todavía ni he explicado como funciona. Al aplicar el parche, tienes dos opciones para cambiar los nombres de las rutas:
[ruby]
# En environment.rb:
config.action_controller.resources_path_names = { :new => ‘nuevo’, :edit => ‘editar’ }
# En routes.rb:
map.resources :schools, :as => ‘escuelas’, :path_names => { :new => ‘nueva’ }
[/ruby]
Como vez, puedes definir los nombres predeterminados en environment.rb, pero luego puedes sobreescribirlos en tus rutas.