我只想在输入电子邮件后验证电子邮件。

我尝试了以下方法:

validates :email, :presence => {:message => "Your email is used to save your greeting."},
                  :email => true,
                  :if => Proc.new {|c| not c.email.blank?},
                  :uniqueness => { :case_sensitive => false }

但是,这不起作用,因为它会在电子邮件留空时停止显示错误消息。

如何在电子邮件丢失时验证是否存在,并且仅在输入时验证格式?

最佳答案

这应该可以解决问题。

validates :email,:presence => {:message => "Your email is used to save your greeting."}, :allow_blank => true,:uniqueness => { :case_sensitive => false } 

使用 :allow_blank => true:allow_nil => true, :if => :email?
编辑:修复错字。

关于ruby-on-rails-3 - 仅当非空白 Rails 3 时才验证电子邮件格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6567793/

10-16 08:51