我有一个实施devise的项目,但是无法覆盖Passwords控制器的消息。
当用户输入了错误的电子邮件地址时,默认情况下,“设计”会给出
Unable to find user with email {email}
我在devise.en.yml
中找不到用于覆盖此消息的密钥,在设计库中也找不到与类似消息相同的任何内容。
除了覆盖控制器之外,我是否还有其他选择?任何帮助表示赞赏。
谢谢
答案 0 :(得分:2)
添加具有以下结构的新语言环境:
en:
devise_token_auth:
passwords:
user_not_found: "Your custom message"
当以“忘记密码”的形式传递无效的电子邮件时,将显示此消息。
此消息最初来自devise_token_auth
宝石。但是,如果您的语言环境文件中具有相同的语言环境,它将覆盖gem的语言环境。
将此语言环境放入哪个*.en.yml file
并不重要。它可以是devise.en.yml
,也可以添加一个名为devise_token_auth.en.yml
的新文件。只有结构很重要。
答案 1 :(得分:0)
如following link中所述,您可以使用
生成devise控制器rails generate devise:controllers user
然后,您可以覆盖create
或update
操作。如果在新操作中包含super
,它将调用父控制器操作,然后执行代码。
您还可以将设计消息替换为explained in this post,只需要在设置中创建该语言环境
en:
devise_token_auth:
sessions:
not_confirmed: "your message overwritten"