-Definieren Sie eine Timeout-Methode -Obwohl der Code selbst korrekt ist, wird die Sitzung als Null festgelegt, und die Methode wird nicht ordnungsgemäß verarbeitet, und es tritt ein Fehler auf.
sessions_controller.rb
def create
# ...
session[:last_access_time] = Time.current
# ...
end
application_controller.rb
TIMEOUT = 5.minutes
def time_out
if session[:last_access_time] > TIMEOUT.ago
session[:last_access_time] = Time.current
else
session.delete(:user_id)
flash[:danger] = "Zeitüberschreitung."
redirect_to :login
end
end
Wenn ich die obige Methode erstelle und dann versuche, mich anzumelden, tritt ein Fehler auf.
NoMethodError (undefined method `>=' for nil:NilClass):
# session[:last_access_time]Wird als Null beurteilt.
Es wurde durch Löschen des Cookies auf der Browserseite behoben. Wahrscheinlich, weil ich die Methode beim Anmelden definiert habe Möglicherweise waren Sie verärgert über "Es gibt keine Sitzung [: last_access_time]".
Recommended Posts