Sha256: 0cbf06431b6864d7550fa3dd99cdc91a09001228230a262366ab41799f60c21b
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
module Devise module Models module EmailValidatable def self.included(base) base.extend ClassMethods base.class_eval do validates_presence_of :email, if: :email_required? validates_uniqueness_of :email, allow_blank: true, if: :email_changed? validates_format_of :email, with: email_regexp, allow_blank: true, if: :email_changed? end end def email_required? true end module ClassMethods Devise::Models.config(self, :email_regexp) end end module MultiEmailValidatable extend ActiveSupport::Concern included do devise :validatable after_validation :propagate_email_errors email_class.send :include, EmailValidatable end def self.required_fields(klass) [] end private def email_changed? false end def propagate_email_errors return if (email_errors = errors.delete(self.class::EMAILS_ASSOCIATION)).nil? email_errors.each do |error| errors.add(:email, error) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
devise-multi_email-1.0.0 | lib/devise/multi_email/models/validatable.rb |