自定义设备密码错误消息

时间:2018-08-24 06:49:37

标签: ruby-on-rails devise customization custom-errors

我有一个实施devise的项目,但是无法覆盖Passwords控制器的消息。

当用户输入了错误的电子邮件地址时,默认情况下,“设计”会给出

Unable to find user with email {email}

我在devise.en.yml中找不到用于覆盖此消息的密钥,在设计库中也找不到与类似消息相同的任何内容。

除了覆盖控制器之外,我是否还有其他选择?任何帮助表示赞赏。

谢谢

2 个答案:

答案 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

然后,您可以覆盖createupdate操作。如果在新操作中包含super,它将调用父控制器操作,然后执行代码。

您还可以将设计消息替换为explained in this post,只需要在设置中创建该语言环境

en:
  devise_token_auth:
    sessions:
      not_confirmed: "your message overwritten"