Rails验证器在状态和格式之间存在差异

nij*_*sen 4 validation ruby-on-rails-3

我有一个带有电子邮件地址的模型,但我不想要它来创建实例.我尝试了以下方法:

validates :email, :presence => false, :format => { :with => email_regex }
Run Code Online (Sandbox Code Playgroud)

但这使我的测试套件失败,格式正则表达式显然使得所需的电子邮件属性存在.

我认为可能有一种before_save方法:是否可以拒绝在before_save方法中保存对象?这样做有更好的"Rails方式"吗?

pju*_*ble 5

你可以使用:allow_blank(或:allow_nil):

validates :email, :allow_blank => true, :format => { :with => email_regex }
Run Code Online (Sandbox Code Playgroud)