Comment vider / détruire une session en rails?

Je n’arrive pas à le trouver n’importe où … Comment supprimer / détruire / réinitialiser / vider / effacer la session d’un utilisateur dans Rails? Pas juste 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 objects stockés et en initialisant un nouvel object de session.

Bonne chance!

session in rails est un object de hachage. Par conséquent, toute fonction disponible pour effacer le hachage fonctionnera avec les sessions.

 session.clear 

ou si des clés spécifiques doivent être détruites:

 session.delete(key) 

Testé en rails 3.2

ajoutée

Les gens ont mentionné par session={} est une mauvaise idée. En ce qui concerne session.clear , Lobati commente – Il semble que vous feriez 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 également clair.

Pour effacer uniquement certains parameters, vous pouvez utiliser:

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

supprimer une session d’utilisateur

 session.delete(:user_id) 

ajoutez ce code à votre ApplicationController

 def reset_session @_request.reset_session end 

(Ne sais pas pourquoi personne ci-dessus ne mentionne ce code comme il a corrigé mon problème) http://apidock.com/rails/ActionController/RackDelegation/reset_session