Используя Rails 3.0.3, работающий на Пассажире, мы столкнулись с проблемой, когда последний набор вспышек сохраняется для каждого запроса. Например мы устанавливаем флэш сообщение, если необходимо быть зарегистрированным в перед фильтром пользователь:Вспышка не очищается
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
Однако на любой последующий запрос после того как пользователь вошел в систему успешно, мы до сих пор получить сообщение флэш сохраняющиеся, ее никогда не очищается для всего сеанса.
В этом примере это единственное место, где мы устанавливаем это сообщение, и я убедился, что он установлен только тогда, когда пользователь не вошел в систему. Фактически, если я поместил flash[:notice] = 'Test'
после того, как блок не обновился, а затем удалил и сообщение «Test» остается для всех последующих запросов.
Это происходит, если вы запускаете приложение либо в разработке, либо в разработке env.
Как я уже сказал в своем вопросе, это не просто этот метод, это просто пример. Если я удалю все из этого метода и поставлю flash [: notice] = 'Test', я получаю «Test». Удалите это, чтобы в методе ничего не было, и уведомление «Test» всегда висит вокруг. – DEfusion