Jak opróżnić / zniszczyć sesję w rails?
Nie mogę go nigdzie znaleźć... Jak usunąć/zniszczyć/zresetować/opróżnić / wyczyścić sesję użytkownika w Rails? Nie tylko jedna wartość, ale cała rzecz..
5 answers
Aby wyczyścić całość użyj metody reset_session w kontrolerze.
reset_session
Oto dokumentacja tej metody: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Powodzenia!Resetuje sesję, usuwając wszystkie obiektów przechowywanych wewnątrz i inicjalizacja nowego obiektu sesji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-09 00:06:58
Sesja w rails jest obiektem hash. Stąd każda funkcja dostępna do czyszczenia hash będzie działać z sesjami.
session.clear
Lub jeśli trzeba zniszczyć konkretne klucze:
session.delete(key)
Testowane w rails 3.2
Dodano
Ludzie wspominali przez session={}
to zły pomysł. Jeśli chodzi o session.clear
, Lobati komentuje-wygląda na to, że lepiej będzie używać reset_session [niż sesji.clear], podobnie jak inne sprzątanie poza jaką sesją.jasne. Wewnętrznie, reset_session wywołuje sesję.destroy, co samo w sobie nazywa jasne, jak również niektóre inne rzeczy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-03 18:57:31
Aby usunąć sesję użytkownika
session.delete(:user_id)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-25 08:43:18
Aby wyczyścić tylko niektóre parametry, możesz użyć:
[:param1, :param2, :param3].each { |k| session.delete(k) }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 05:21:25
Dodaj ten kod do swojego ApplicationController
def reset_session
@_request.reset_session
end
( Dont know why no one above just mention this code jak to rozwiązało mój problem ) http://apidock.com/rails/ActionController/RackDelegation/reset_session
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-22 15:42:26