2010-03-08 25 views

Respuesta

178

Para borrar todo, utilice el método reset_session en un controlador.

reset_session 

Aquí está la documentación sobre este método: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668

Restablece la sesión por la limpieza de todos los los objetos almacenados dentro y inicializar un nuevo objeto de sesión.

¡Buena suerte!

+1

Para las sesiones basadas en bases de datos (que debe uso probable) puede caducar a través de una consulta: http://guides.rubyonrails.org/security.html#session-expiry – m33lky

36

session in rails es un objeto hash. Por lo tanto, cualquier función disponible para borrar el hash funcionará con las sesiones.

session.clear 

o si las claves específicas tienen que ser destruido:

session.delete(key) 

Probado en carriles de 3,2

+0

¿Alguien tiene alguna idea sobre los méritos de este método frente al recomendado por Gdeglin? –

+2

Esto se puede usar cuando desea retener otros parámetros pero elimina un par de valores de clave en particular. – Lavixu

+0

Supongo que me refería al uso de 'session.clear' o' session = {} 'frente al uso de' reset_session'. ¿Son idénticos? –

5

Para borrar sólo ciertos parámetros, puede utilizar:

[:param1, :param2, :param3].each { |k| session.delete(k) } 
5

a eliminar una sesión de usuario

session.delete(:user_id) 
+0

¡Cuidado, puede eliminar el registro del usuario de la base de datos! – Arthur

+0

@Arthur Eso no es verdad. Pero solo eliminará la clave: ID_usuario de la sesión y no toda la sesión –

Cuestiones relacionadas