Pasar modelo no guardado para ver

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!

preguntado el 03 de mayo de 12 a las 16:05

2 Respuestas

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

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 or haz tu propia pregunta.