加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails验证用户电子邮件 – 只希望它在用户注册

发布时间:2020-12-16 19:26:31 所属栏目:百科 来源:网络整理
导读:我有一个用户模型,具有通常的属性,如电子邮件和hashed_pa??ssword等.我想写一个验证,检查电子邮件地址的存在,但只有当 1)数据库中没有一个存储在该对象中(即这是新用户注册) 2)用户正在尝试更新其电子邮件地址. 我目前的验证 validates_presence_of :email v
我有一个用户模型,具有通常的属性,如电子邮件和hashed_pa??ssword等.我想写一个验证,检查电子邮件地址的存在,但只有当

1)数据库中没有一个存储在该对象中(即这是新用户注册)

2)用户正在尝试更新其电子邮件地址.

我目前的验证

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中有一个密码电子邮件地址.

我无法解决如何将其限制在上述的两个场景中.

谁能帮忙?

解决方法

我认为EmFi正在进行中.但我不认为validates_presence_of:电子邮件应该控制你.电子邮件应该始终存在 – 如果以空格形式显示,参数不会与用户的保存混淆.如果以表单输入,即使更新,它应该有一个电子邮件确认一起骑.

试试这个:

validates_presence_of :email
validates_presence_of :email_confirmation,:if => :email_changed?

validates_confirmation_of :email

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读