如何自定义Devise错误消息?

时间:2019-03-29 17:06:01

标签: ruby-on-rails ruby devise ruby-on-rails-5

在我的密码更改控制器中,我允许用户更改其密码,只要他们具有有效的密码请求令牌即可。

但是,一旦使用了它,它就会失效,因此,如果他们想再次使用它,则用户会在模型上看到错误:

Reset password token is invalid

这是来自Devise本身。如何将此消息修改为:

User reset password token already used

如果我无法通过某些配置更改消息,那么是否有一种方法可以让我检查令牌是否有效?

在这种情况下,我可以手动呈现此消息

3 个答案:

答案 0 :(得分:2)

这不是设计,而是ActiveModel error message

  

person.errors.full_message(:name, 'is invalid') # => "Name is invalid"

您可以在区域设置文件中覆盖它。

en:
  activerecord:
    attributes:
      user:
        reset_password_token: User reset password token
    errors:
      models:
        user:
          attributes:
            reset_password_token:
              invalid: already used

答案 1 :(得分:0)

您可以通过设置语言环境文件(如文档here中所述)在Devise中自定义错误消息

您可以在此处找到有关语言环境文件使用的更多信息:https://github.com/plataformatec/devise/wiki/I18n

答案 2 :(得分:0)

如果您要更改/自定义设计错误/闪存消息...只需更改下面显示的devise.en.yml文件在config/locals/devise.en.yml的位置

######example
en:
  devise:
    confirmations:
      ##OLD => confirmed: "Your email address has been successfully confirmed."
      confirmed: "Your are not a confirmed user.Kindly Confirm your Email Id"

希望这会有所帮助;)