Module: DatabaseValidations::ClassMethods

Defined in:
lib/database_validations/uniqueness_validator.rb

Instance Method Summary collapse

Instance Method Details

#validates_db_uniquenessObject



59
60
61
62
# File 'lib/database_validations/uniqueness_validator.rb', line 59

def validates_db_uniqueness
  derived = superclass.respond_to?(:validates_db_uniqueness) ? superclass.validates_db_uniqueness : {}
  derived.merge(@validates_db_uniqueness || {})
end

#validates_db_uniqueness_of(*attributes) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/database_validations/uniqueness_validator.rb', line 43

def validates_db_uniqueness_of(*attributes)
  @validates_db_uniqueness ||= {}

  options = attributes.extract_options!

  attributes.each do |attribute|
    columns = [attribute, Array.wrap(options[:scope])].flatten!.map!(&:to_s).sort!

    DatabaseValidations::Helpers.raise_if_index_missed!(self, columns)

    @validates_db_uniqueness[columns] = options.merge(attributes: attribute)
  end

  include(DatabaseUniquenessValidator)
end