Devise 身份验证框架在任何地方都使用 Flash 通知。这使得与应用程序集成很容易,但有时会导致用户体验不佳。
我想知道在我的 Rails 3 应用程序中有选择地关闭一些设计闪光通知的简单方法是什么。特别是,我想摆脱明显的 signed_in 和 signed_out 闪烁。
一些搜索建议子类化 session Controller 或使用 something like this但我一直无法找到任何简单的解决方案来解决这个问题。
请您参考如下方法:
您可以使用设计支持的 I18n 后端自定义您的设计 Flash 消息。如果您没有为特定键设置任何内容,则不会显示空的 flash 消息,例如 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: ""
更新。
你不应该删除 key ,否则你会得到一个错误。
要不显示空的 flash 消息,您应该在 View 中进行简单的检查(例如使用 haml):
- unless notice.blank? && alert.blank?
#flash
.wrapper
- unless notice.blank?
%p.notice= notice
- unless alert.blank?
%p.alert= alert