0

可能重复:
在设计 2.0 上跳过omniauth-twitter 的电子邮件验证

我正在对电子邮件使用此验证规则:

  validates :email,
            :presence => true, 
            :format => { :with => VALID_EMAIL_REGEX }, 
            :uniqueness => {:case_sensitive => false }

  before_save do |user| 
        user.email = email.downcase#
        user.slug  = user.username.parameterize
  end

我试图补充:

  def email_required?
    super && provider.blank?
  end

对于跳过电子邮件验证,如果访问者想通过 Twitter 注册,但我仍然在这里收到错误,看起来这email_required?不起作用。

我错过了什么?

谢谢

4

1 回答 1

1

email_required如果您想跳过设计的验证,请参阅:https ://github.com/plataformatec/devise/blob/c179cef365f7188c91cbbc3db924a9f1f9563c3c/lib/devise/models/validatable.rb#L29 但是如果您想跳过自己的电子邮件验证可以使用这样的东西:

validates :email,
          :presence => true, 
          :format => { :with => VALID_EMAIL_REGEX }, 
          :uniqueness => {:case_sensitive => false },
          :if => 'provider.blank?'
于 2013-01-27T17:41:28.273 回答