module Devise::Models::MultiEmailValidatable

Public Class Methods

required_fields(klass) click to toggle source
# File lib/devise/multi_email/models/validatable.rb, line 49
def self.required_fields(klass)
  []
end

Protected Instance Methods

email_required?() click to toggle source

Same as Devise::Models::Validatable#email_required?

# File lib/devise/multi_email/models/validatable.rb, line 61
def email_required?
  true
end
password_required?() click to toggle source

Same as Devise::Models::Validatable#password_required?

# File lib/devise/multi_email/models/validatable.rb, line 56
def password_required?
  !persisted? || !password.nil? || !password_confirmation.nil?
end

Private Instance Methods

propagate_email_errors() click to toggle source
# File lib/devise/multi_email/models/validatable.rb, line 67
def propagate_email_errors
  association_name = self.class.multi_email_association.name
  email_error_key = errors.keys.detect do |key|
    [association_name.to_s, "#{association_name}.email"].include?(key.to_s)
  end
  return unless email_error_key.present?

  email_errors =
    if errors.respond_to?(:details)
      errors
        .details[email_error_key]
        .map { |e| e[:error] }
        .zip(errors.delete(email_error_key) || [])
    else
      errors.delete(email_error_key)
    end

  email_errors.each do |type, message|
    errors.add(:email, type, message: message)
  end
end