Ruby on rails 如何验证成员的电子邮件?

Ruby on rails 如何验证成员的电子邮件?,ruby-on-rails,ruby-on-rails-3,validation,Ruby On Rails,Ruby On Rails 3,Validation,我已经在我的用户模型中验证了:电子邮件的存在。我的用户模型还有一个布尔member列,用于确定用户是成员还是普通用户 普通用户无需电子邮件即可注册。但当他们注册会员帐户时,他们需要提供一封电子邮件 问题是,当用户作为普通用户注册时,将触发验证,说明:email为空。我该怎么办 如果验证也命名了作用域,那就太棒了。如果我理解你的意思,它应该像 validates_presence_of :email, :if => :member 您的成员注册表单调用的操作可以显式设置user.membe

我已经在我的
用户
模型中验证了:电子邮件的存在。我的用户模型还有一个布尔
member
列,用于确定用户是成员还是普通用户

普通用户无需电子邮件即可注册。但当他们注册会员帐户时,他们需要提供一封电子邮件

问题是,当用户作为普通用户注册时,将触发验证,说明
:email
为空。我该怎么办


如果验证也命名了作用域,那就太棒了。

如果我理解你的意思,它应该像

validates_presence_of :email, :if => :member

您的成员注册表单调用的操作可以显式设置user.member=true,那么JacobM的答案将起作用,即

validates_presence_of :email, :if => :member

你能详细说明你想发生什么吗?如果一个普通用户有一封空白的电子邮件注册为会员,这不应该触发验证错误吗?抱歉,做了一些更改以使其更清晰。基本上,想要注册成为普通用户的用户不应该触发电子邮件验证。好的,只有当用户已经是会员时才会触发电子邮件验证。这意味着,在会员的注册表单上,如果用户决定将电子邮件留空,则不会触发验证。我不明白为什么。在尝试保存对象之前,不会触发验证。到那时,您大概已经设置了成员标志。这与“如果你对问题1说是的,那么问题2是必需的”没有根本区别,我一直都是这样做的。