如何自定义Devise错误消息?

问题描述 投票:0回答:3

在我的密码更改控制器中,我允许用户更改密码,前提是他们拥有有效的密码请求令牌。

但是,在他们已经使用它之后它变得无效,因此如果他们想再次重复使用它,用户就会在模型上出错:

Reset password token is invalid

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

User reset password token already used

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

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

ruby-on-rails ruby devise ruby-on-rails-5
3个回答
2
投票

它不是Devise,而是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

0
投票

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

您可以在此处找到有关区域设置文件使用的更多信息:https://github.com/plataformatec/devise/wiki/I18n


0
投票

如果您要更改/自定义设计错误/ flash消息...只需在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"

希望这可以帮助 ;)

© www.soinside.com 2019 - 2024. All rights reserved.