Routing con parametros iguales

Buenas,

Andaba fijandome en github.com que genera rutas del estilo

http://localhost:3000/nombredeusuario
en lugar de

http://localhost:3000/users/nombredeusuario

me había puesto a intentarlo y parece que se puede con algo como

map.with_options :controller => ‘users’ do |user|
user.show ‘/:name’, :action => ‘show’
end

map.user ‘/:name’, :controller => ‘users’, :action => ‘show’

pero claro, lo he liado un poco para ver si así terminaba de
entenderlo y he generado una tabla users de la siguiente manera

users

id | parent_id | name

1 | | uno
2 | | dos
3 | 2 | tres

Si ahora quiero obtener la ruta
http://localhost:3000/dos/tres

no puedo generar en routes.rb algo como
map.user ‘/:name/:name’, :controller => ‘users’, :action => ‘show’

Alguna sugerencia de como solventar este caso cuando se tienen dos
parametros (:name) que se llaman igual en la url

Muchas gracias por la ayuda.
Saludos.

Alguna sugerencia de como solventar este caso cuando se tienen dos
parametros (:name) que se llaman igual en la url

¿Se te ocurre algún ejemplo práctico en el que tenga sentido enviar
dos parámetros con el mismo nombre?
¿Cómo los diferenciarías al recibirlos en tu controlador para trabajar
con ellos?

hola,

Si ahora quiero obtener la ruta
http://localhost:3000/dos/tres

no puedo generar en routes.rb algo como
map.user ‘/:name/:name’, :controller => ‘users’, :action => ‘show’

Alguna sugerencia de como solventar este caso cuando se tienen dos
parametros (:name) que se llaman igual en la url

una posible opción es usar en la ruta algo como

map.connect “algo/*names”, :controller=>blabbla…

Eso te provoca que cuando llaman a una ruta que empieza por “algo/” te
pase el resto de la url en un array llamado “names”, siendo cada
posición un fragmento de la url. Con eso tú ya puedes hacer lo que
necesites.

saludos,

javier ramírez

Puedes enviar dos parámetros con el mismo nombre, pero como los vas a
diferencias en el controlador?? tienes algunas alternativas, una puede
ser
hacer algo así

map.user ‘/:parent_name/:name’, :controller => ‘users’, :action =>
‘show’

y lo tendrás diferenciado en dos parámetros diferentes, luego los
recoges
con params[:name] y params[:parent_name] y haces lo que quieras con
ellos.

El día 19 de junio de 2008 15:16, Raul M. [email protected]
escribió:

Muchas gracias por la ayuda, muy amables.

Saludos.

El 19/06/2008, a las 15:30, javier ramirez
escribió:

hola,