【发布时间】:2014-04-24 08:44:45
【问题描述】:
我正在使用 letter_opener gem 在开发环境中测试我的 Devise 重置密码功能。
当新用户注册时,我要求他们输入两次电子邮件。这是我的User 模型中的代码:
validates :email_confirmation, presence: true
validates_confirmation_of :email
在我尝试测试密码重置功能之前,这一切正常。在您输入两次新密码并提交的页面上,它会抛出一个错误 Email confirmation can't be blank. 即使我将电子邮件和电子邮件确认字段粘贴在那里以查看会发生什么并在其中输入一些内容,它仍然认为字段为空。
我可以将模型代码更改为如下所示:
validates :email_confirmation, presence: true, unless: {action: :edit}
validates_confirmation_of :email, unless: {action: :edit}
但是,如果用户只是定期在其帐户资料中编辑他/她的电子邮件地址,它将不会保留电子邮件确认验证。
所以,我想知道是否有办法让重置密码页面不需要电子邮件确认,或者是否有办法编辑我的unless 声明在我的模型中,仅在密码重置页面上专门编辑时才应用异常。感谢您在使用 Devise 3.2.4 的 Rails 4 上提供任何帮助。
【问题讨论】:
标签: ruby-on-rails devise