在我的密码更改控制器中,我允许用户更改密码,前提是他们拥有有效的密码请求令牌。
但是,在他们已经使用它之后它变得无效,因此如果他们想再次重复使用它,用户就会在模型上出错:
Reset password token is invalid
这是来自Devise本身。如何修改此消息为:
User reset password token already used
如果我无法通过某些配置更改消息,那么是否有一种方法可以让我检查令牌是否有效?
这样我就可以在这种情况下手动呈现此消息
它不是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
您可以通过设置语言环境文件来自定义Devise中的错误消息(如文档here中所述)
您可以在此处找到有关区域设置文件使用的更多信息:https://github.com/plataformatec/devise/wiki/I18n
如果您要更改/自定义设计错误/ 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"
希望这可以帮助 ;)