ruby-on-rails – 在密码重置期间对Devise模型中的某些成员进行跳过验证

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在密码重置期间对Devise模型中的某些成员进行跳过验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的用户(设计)模型还有姓名,城市,国家,电话会员.

在创建注册页面中 – 我验证了城市,电话,姓名,电子邮件的确认_存在,:on => :创建

在编辑注册页面中 – 我验证了城市,以及:on => :更新

现在当我在forgot_password_page上设置一个新密码时,它会询问Devise :: PasswordsController#update中是否存在城市,姓名

我该如何处理选择性验证?

我猜它应该是这样的,

validates_presence_of city,nation,phone,name,:on => :update,:if => :not_recovering_password

def not_recovering_password
  # what goes here
end

解决方法

我遇到了类似的问题,因为创建用户时并不是所有字段都是必需的.检查其他字段的存在:使用验证进行更新.

所以这就是我解决的问题:

validates :birthdate,presence: true,on: :update,unless: Proc.new{|u| u.encrypted_password_changed? }

方法encrypted_pa​​ssword_changed?是Devise Recoverable中使用的那个.

猜你在找的Ruby相关文章