2015-03-09 6 views
1

У меня есть настраиваемый контроллер ошибок для отображения страниц динамической ошибки (для 404, 422 500 и т. Д.), Все работает нормально, но я не могу удалить флеш-сообщение (согласно http://blog.plataformatec.com.br/2012/01/my-five-favorite-hidden-features-in-rails-3-2/).Rails: удалите флеш-сообщение внутри настраиваемого контроллера ошибок

Есть ли способ удалить флешку внутри моего настраиваемого контроллера ошибок?

+0

Можете ли вы показать нам файл контроллера? –

+0

Здесь вы получили: https://gist.github.com/xxswingxx/b82296a69377879f666a Это довольно просто. Если я попытаюсь «flash [: something] = nil', а затем перезагрузите страницу, значение вспышки все равно будет там. – John

ответ

5

Использование Rails 4:

class ErrorController < ActionController::Base 
    before_action { flash.clear } 

    # ... 
end 

Ссылка: http://api.rubyonrails.org/classes/ActionDispatch/Flash/FlashHash.html#method-i-clear

+0

Пробовал, не работает. Проблема в том, что я возвращаю статус ошибки, поскольку это рендеринг пользовательских страниц ошибок, поэтому флеш, переменные сеанса и т. Д. Каким-то образом сохраняются по умолчанию рельсами и не допускают модификаций. – John

+0

Хорошо. Вы не можете удалить код ошибки «flash» из страниц с ошибками? – Rodrigo

+0

Я могу удалить его, но только локально. Если я перезагрузите страницу и снова вернусь к контроллеру ошибок, флеш-сообщение все равно будет там, не устанавливая его снова, как если бы удаление не повлияло. – John