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 に答える