Comment vider/détruire une session dans les rails?
Je n'arrive pas à trouver n'importe où... Comment puis-je supprimer/détruire/reset/vide/effacer la session d'un utilisateur dans les Rails? Pas seulement une valeur, mais l'ensemble de la chose..
Vous devez vous connecter pour publier un commentaire.
Effacer toute chose utiliser le reset_session méthode dans un contrôleur.
Voici la documentation sur cette méthode: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Bonne chance!
session dans les rails est un objet de hachage. Donc toutes les fonctions disponibles pour la compensation de hachage va travailler avec les sessions.
ou
si les touches spécifiques doivent être détruits:
Testé dans les rails 3.2
ajouté
Personnes ont mentionné par
session={}
est une mauvaise idée. Concernantsession.clear
, Lobati commentaires - On dirait que vous êtes probablement mieux d'utiliser reset_session [de la session.clear], comme il fait un peu de nettoyage jusqu'au-delà de ce session.claire n'. En interne, reset_session appels session.détruire, qui elle-même appelle claire ainsi quelques autres trucs.session.clear
ousession = {}
vs l'utilisation dereset_session
. Sont-ils identiques?session = {}
ne fait rien mais vide variable locale, ce qui crée une insidieuse bug dans votre application et laisse encore de la session flottant autour intacte.reset_session
, comme il fait un peu de nettoyage jusqu'au-delà de cesession.clear
n'. En interne,reset_session
appelssession.destroy
, qui elle-même appelleclear
ainsi quelques autres trucs.pour supprimer un utilisateur de la session de l'
Pour effacer uniquement certains paramètres, vous pouvez utiliser:
ajouter ce code à votre ApplicationController
( Je ne sais pas pourquoi personne au dessus il suffit de mentionner ce code
tant qu'il fixe mon problème )
http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
etreset_session
à la fois le travail et peut-être faire la même chose?