Вы можете настроить свои флеш-сообщения devise с бэкэндом I18n, который поддерживает devise. Если вы установите Ничего для определенного ключа, пустое флэш-сообщение не будет отображаться, например, для 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