我有一个用户模型,具有通常的属性,如电子邮件和hashed_password等.我想写一个验证,检查电子邮件地址的存在,但只有当
我目前的验证
validates_presence_of :email validates_presence_of :email_confirmation validates_confirmation_of :email
显然阻止我更新任何属性.我想到了使用
validates_presence_of:email,:if:email_validation_required?
def email_validation_required? self.email.blank? end
但是,这不会帮助方案2,因为它将返回true,因为用户在db中有一个密码电子邮件地址.
我无法解决如何将其限制在上述的两个场景中.
谁能帮忙?
@H_403_22@解决方法
我认为EmFi正在进行中.但我不认为validates_presence_of:电子邮件应该控制你.电子邮件应该始终存在 – 如果以空格形式显示,参数不会与用户的保存混淆.如果以表单输入,即使更新,它应该有一个电子邮件确认一起骑.
试试这个:
validates_presence_of :email validates_presence_of :email_confirmation,:if => :email_changed? validates_confirmation_of :email@H_403_22@ @H_403_22@ 原文链接:https://www.f2er.com/ruby/271010.html