Ответ 1
Вы можете настроить свои флеш-сообщения с поддержкой I18n, которые поддерживают. Если вы не установили ничего для конкретного ключа, пустое флеш-сообщение не будет отображаться, например, для sign_in и sign_out:
en:
devise:
failure:
unauthenticated: 'You need to sign in or sign up before continuing.'
unconfirmed: 'You have to confirm your account before continuing.'
locked: 'Your account is locked.'
invalid: 'Invalid email or password.'
invalid_token: 'Invalid authentication token.'
timeout: 'Your session expired, please sign in again to continue.'
inactive: 'Your account was not activated yet.'
sessions:
signed_in: ""
signed_out: ""
UPD.
Вы не должны удалять ключ, иначе вы получите сообщение об ошибке. Чтобы не отображать пустые флеш-сообщения, вы должны выполнить простую проверку в представлении (например, с помощью haml):
- unless notice.blank? && alert.blank?
#flash
.wrapper
- unless notice.blank?
%p.notice= notice
- unless alert.blank?
%p.alert= alert