设计用于登录的错误消息

时间:2012-12-27 08:08:11

标签: ruby-on-rails devise

众所周知,当登录过程失败时,Devise会使用闪光灯进行警报。没有resource.errors数组,只是闪烁。所以我的问题是它是如何做到的?我的意思是我如何才能将此功能用于我的目的?是否存在Devise的帮助器或控制器方法,用于将资源错误从resource.errors移动到flash?或者唯一的方法是编写我自己的实现?

我试图自己弄明白,但我失败了。

感谢。

1 个答案:

答案 0 :(得分:1)

Devise使用I18N作为它的flash消息,它允许你完全自定义它们,甚至添加你自己的。查看项目目录中的config/locales/devise.en.yml。在那里你会看到Devise的flash消息所需的所有英文翻译。

如果您查看Devise中的SessionsController,您会看到以下行:

set_flash_message(:notice, :signed_in) if is_navigational_format?

这会调用他们的set_flash_message并传入Flash类型和所需的翻译。

至于想要将它用于您的目的,它实际上取决于您想要做什么。将其翻译为新语言就像在语言环境下添加YAML文件一样简单,例如西班牙语config/locales/devise.es.yml,然后翻译现有文本。

除此之外的任何内容,例如添加新的Flash消息,都需要覆盖默认的Devise控制器,这些示例可以在wiki中找到,或者通过简单的Google search

找到