Antworten:
Verwenden Sie die Methode reset_session in einem Controller, um das Ganze zu löschen.
reset_session
Hier ist die Dokumentation zu dieser Methode: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Setzt die Sitzung zurück, indem alle darin gespeicherten Objekte gelöscht und ein neues Sitzungsobjekt initialisiert werden.
Viel Glück!
Session in Rails ist ein Hash-Objekt. Daher funktioniert jede Funktion, die zum Löschen von Hash verfügbar ist, mit Sitzungen.
session.clear
oder wenn bestimmte Schlüssel zerstört werden müssen:
session.delete(key)
In Schienen getestet 3.2
hinzugefügt
Die Leute haben von erwähnt, session={}
ist eine schlechte Idee. In Bezug auf session.clear
Lobati-Kommentare: Es sieht so aus, als ob Sie reset_session [besser als session.clear] verwenden sollten, da es eine andere Bereinigung durchführt, die über die von session.clear hinausgeht. Intern ruft reset_session session.destroy auf , das selbst clear sowie einige andere Dinge aufruft .
reset_session
, als ob Sie wahrscheinlich besser dran sind , da es andere Aufräumarbeiten macht, die über das hinausgehen session.clear
. Intern reset_session
Anrufesession.destroy
, die selbst clear
auch einige andere Sachen anrufen .
Um nur bestimmte Parameter zu löschen, können Sie Folgendes verwenden:
[:param1, :param2, :param3].each { |k| session.delete(k) }
Fügen Sie diesen Code Ihrem ApplicationController hinzu
def reset_session
@_request.reset_session
end
(Ich weiß nicht, warum niemand oben diesen Code erwähnt hat, da er mein Problem behoben hat.) Http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
und reset_session
beide arbeiten und machen vielleicht das Gleiche?