Je n'arrive pas à le trouver nulle part ... Comment supprimer / détruire / réinitialiser / vider / effacer la session d'un utilisateur dans Rails? Pas seulement une valeur mais le tout.
133
Je n'arrive pas à le trouver nulle part ... Comment supprimer / détruire / réinitialiser / vider / effacer la session d'un utilisateur dans Rails? Pas seulement une valeur mais le tout.
Pour effacer le tout, utilisez la méthode reset_session dans un contrôleur.
reset_session
Voici la documentation sur cette méthode: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Réinitialise la session en effaçant tous les objets stockés dans et en initialisant un nouvel objet de session.
Bonne chance!
session in rails est un objet de hachage. Par conséquent, toute fonction disponible pour effacer le hachage fonctionnera avec les sessions.
ou si des clés spécifiques doivent être détruites:
Testé dans les rails 3.2
ajoutée
Les gens ont mentionné par
session={}
est une mauvaise idée. En ce qui concernesession.clear
, Lobati commente - Il semble que vous feriez probablement mieux d'utiliser reset_session [que session.clear], car il effectue un autre nettoyage au-delà de ce que fait session.clear. En interne, reset_session appelle session.destroy , qui lui-même appelle clear ainsi que d'autres choses.la source
reset_session
, car il fait un autre nettoyage au-delà de ce quesession.clear
fait. En interne, lesreset_session
appelssession.destroy
, qui eux- mêmes appellentclear
également d'autres choses .pour supprimer la session d'un utilisateur
la source
Pour effacer uniquement certains paramètres, vous pouvez utiliser:
la source
ajoutez ce code à votre ApplicationController
(Je ne sais pas pourquoi personne ci-dessus ne mentionne simplement ce code car il a résolu mon problème) http://apidock.com/rails/ActionController/RackDelegation/reset_session
la source
@_request.reset_session
et lesreset_session
deux fonctionnent et peut-être faire la même chose?