Pasar modelo no guardado para ver
Frecuentes
Visto 338 equipos
0
Tengo un modelo de "Usuarios" y estoy trabajando con una Sesión.
Los usuarios, sin iniciar sesión, pueden modificar un objeto User.new en la sesión, sin guardar realmente el usuario.
Me gustaría permitir que el usuario que aún no ha iniciado sesión vea su página Usuarios#Mostrar.
¿Cuál es la mejor manera de hacer esto?
¡Gracias!
2 Respuestas
0
En su controlador, podría hacer algo como esto:
def show
@user = current_user || session[:current_user]
end
Entonces obtienes el usuario_actual si hay uno, y si no, lo lees de la sesión.
Sin embargo, almacenar un modelo completo en la sesión generalmente apesta. Si cambia la clase subyacente, el objeto en la sesión no se desarmará correctamente, así que asegúrese de restablecer su sesión con reset_session
después de realizar cambios en su clase de Usuario o de lo contrario obtendrá muchos errores extraños.
contestado el 03 de mayo de 12 a las 16:05
0
La respuesta anterior funciona. Estaba buscando el patrón "Modelo basado en sesión". Hay un Railscast en modelos basados en sesiones que encontré muy útil para trabajar con este patrón.
contestado el 04 de mayo de 12 a las 20:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby-on-rails or haz tu propia pregunta.