使用在Passenger中運行的Rails 3.0.3,我們遇到了每個請求都保留最後一個閃存集的問題。Flash消息沒有被清除
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to login_url
return false
end
end
但是用戶之後的任何後續請求中已成功地登錄我們仍然得到提示信息持續,但:例如,如果用戶需要在過濾前先登錄我們設定一個閃光消息從不清除整個會話。
在這個例子中,這是我們設置這個消息的唯一地方,我確保只有當用戶沒有登錄時才設置它。事實上,如果我在之後將except塊刷新,然後刪除行和'測試'的Flash消息保留所有後續請求。
如果您在開發環境或生產環境中運行應用程序,就會發生這種情況。
正如我在我的問題中所說的那樣,這不僅僅是這種方法,這只是一個例子。如果我從該方法中刪除所有內容並將其放入flash [:notice] ='Test',我會得到'Test'。刪除這個,這樣方法中就沒有任何東西,'測試'通知會永遠存在。 – DEfusion 2011-01-13 15:23:39