Почему моя вспышка [: note] постоянно отображается на перенаправленной странице? - Рельсы 3.1
По моему ApplicationController
У меня есть before_filter
:
before_filter :expire_session
def expire_session
if session
reset_session if session[:last_seen] < 15.minutes.ago
flash[:error] = "Your session has timed out. Please log back in."
session[:last_seen] = Time.now
end
end
В моих sessions_controller
это действия error
и destroy
:
def error
flash[:error] = "We're sorry. You need to sign in to get access to that page."
redirect_to root_path
end
def destroy
reset_session
redirect_to root_path, :notice => "Signed out!"
end
Это работает отлично, то есть истекает мой сеанс после X
минут бездействия - что я и хочу. Проблема в том, что когда он перенаправляет меня на root_path
, появляется следующее сообщение:
Your session has timed out. Please log back in.
Если я перезагрузлю страницу, сообщение все еще там. Если я закрою вкладку и вернусь к этому URL, это сообщение все еще там.
Другие сообщения, сгенерированные в flash[:notice] or flash[:error]
, отображаются только один раз, и при перезагрузке страницы они исчезают.
Почему этот торчит?
Спасибо.