-Définir une méthode de timeout -Même si le code lui-même est correct, la session est considérée comme nulle et la méthode n'est pas traitée correctement et une erreur se produit.
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] = "Fin du temps."
redirect_to :login
end
end
Lorsque je crée la méthode ci-dessus et que j'essaye de me connecter, une erreur se produit.
NoMethodError (undefined method `>=' for nil:NilClass):
# session[:last_access_time]Est jugé nul.
Il a été résolu en supprimant le cookie côté navigateur. Probablement parce que j'ai défini la méthode en étant connecté Vous avez peut-être été en colère contre "il n'y a pas de session [: last_access_time]".
Recommended Posts