2009-03-08 13 views
5

En mi aplicación Rails, tengo una página de inicio de sesión. Después de que esa persona inicie sesión, ¿cuál es la mejor manera de que mi aplicación siga rastreando a la persona que inició sesión? Por ejemplo, si el usuario se mueve a diferentes páginas, mis controladores/acciones perderán la pista de ese usuario a menos que siga pasando un variable entre cada página que el usuario visita posteriormente. ¿Hay una mejor manera de hacer esto? ¿Debo usar la variable sessions?Rieles: seguimiento del ID de un usuario

Respuesta

7

Sí, las sesiones son exactamente lo que está buscando.

session["user_id"] = user_id 

Y para buscar el usuario actual en otra página (si el modelo se llama Usuario):

@current_user = User.find(session["user_id]") 
+0

Tenga en cuenta que si usted está usando sesiones basadas en cookies, que es por defecto creo que en rails 2.1+ que estos datos podrían cambiarse para cambiar quién está conectado. – Tilendor

+2

En realidad, la cookie tiene una huella digital SHA512 basada en usted La clave secreta de la aplicación garantiza que no se manipulen los datos. Sin embargo, esto significa que el contenido de la cookie está disponible en el lado del cliente, por lo que debe evitar almacenar datos confidenciales (contraseñas, etc.) a menos que cambie a una tienda del lado del servidor. – Palm

Cuestiones relacionadas