Rutas: ¿Lo estoy haciendo bien?

Hola!
Despues de años con J2EE estoy ahora empezando con RoR y quería saber si
lo que estoy haciendo está bien, mal o se podría hacer mucho más fácil y
yo estoy haciendo el ridiculo jejeej

La aplicación es un ejemplo de prueba de red social para aprender.
Los usuarios se registran y tienen sus mensajes, sus perfiles, sus
amigos, etc…

Bien, lo que yo estoy haciendo para que sólo el usuario logado pueda ver
sus mensajes, su perfil, etc… es añadir el user_id en la ruta de la
URL.
Por ejemplo:

map.show_user_mensaje ‘:user/mensaje/:mensaje’, :controller =>
‘mensajes’, :action => ‘show’

map.edit_user_mensaje ‘:user/mensajes/:mensaje/edit’, :controller =>
‘mensajes’, :action => ‘edit’

map.filter_mensajes ‘:user/mensajes/filter’, :controller => ‘mensajes’,
:action => ‘index’

Luego con un before_filter compruebo que el valor de :user sea igual al
del user_id del usuario ya logado.

El problema de todo esto es que si la aplicación crece, el fichero
routes va creciendo y creciendo también.

Me parece un poco inutil tener que reescribir la ruta para todas las
acciones añadiendo simplemente el :user al principio

No habría alguna forma de decir: “Todas las urls van a llevar el user_id
en tal punto”

Bueno pues esa es mi duda.
Ojala alguien con más conocimiento y experiencia en esto que yo pueda
aconsejarme o indicarme donde puedo obtener info al respecto.

Muchas gracias!
L

hola,

No habría alguna forma de decir: “Todas las urls van a llevar el user_id
en tal punto”

puedes hacer algo así

map.connect ‘:user_id/:controller/:action/:id’
map.connect ‘:user_id/:controller/:action/:id.:format’

o si estás usando REST, podrías definirte todos los recursos como
anidados dentro de user

map.resources :users do |user|
user.resources :messages
user.resources :filters
end

saludos,

javier ramírez

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs