Buenas tardes,
Hace un buen rato que me estoy peleando con el archivo routes.rb y me
estoy empezando a volver loco.
De momento lo tengo asÃ:
Install the default route as the lowest priority.
map.connect ‘’, :controller => ‘home’, :action => ‘index’
map.connect ‘admin/’, :controller => ‘admin/translate’, :action =>
‘index’
map.connect ‘:locale/:controller/:action/:id’
Estoy usando globalize y pongo la lengua en primer lugar. De hecho estoy
siguiendo el ejemplo que hay en la pagina de globalize.
Hasta aquà bién. Estoy empezando a generar los controladores de la parte
de administración. He procurado hacerlo bien como dicen de lo de las
buenas practicas en rails. Asà que he hecho:
ruby script/generate controller Admin::Translate
total que dentro de app/controllers/admin tengo este controlador : class
Admin::TranslateController < ApplicationController
La idea es que cuando pongo http://localhost:3000/ en el navegador, se
me abre http://localhost:3000/es/home .
Hasta aquà perfecto.
Ahora quiero que cuando ponga http://localhost/3000/admin se me abra
http://localhost:3000/es/admin/translate
he puesto esta regla: map.connect ‘admin/’, :controller =>
‘admin/translate’, :action => ‘index’
me he estado mirando el libro de agile web development para entender
como funciona pero no consigo aclararme. En teoria el controlador es
translate a secas. Es correcto decirle admin/translate para decirle que
esta dentro de esta subcarpeta?
En todo caso el resultado que consigo con esta regla es ir a la
dirección:
http://localhost:3000/es/admin/admin/translate
Obviamente no encuentra nada porque sobra un “admin”. El caso es que no
se de donde sale el segundo admin.
Seguramente tendre algo mal entendido en como funciona el routes.rb
Si alguien me puede aclarar un poco seria de gran ayuda.
Gracias