Module: DatabaseValidations::ClassMethods

Defined in:
lib/database_validations/lib/db_belongs_to/belongs_to_handlers.rb,
lib/database_validations/lib/validates_db_uniqueness_of/uniqueness_handlers.rb

Instance Method Summary collapse

Instance Method Details

#db_belongs_to(name, scope = nil, **options) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/database_validations/lib/db_belongs_to/belongs_to_handlers.rb', line 3

def db_belongs_to(name, scope = nil, **options)
  Helpers.cache_valid_method!(self)

  @database_validations_storage ||= DatabaseValidations::OptionsStorage.new(self)

  belongs_to(name, scope, options.merge(optional: true))

  foreign_key = reflections[name.to_s].foreign_key

  @database_validations_storage.push_belongs_to(foreign_key, name)

  validates_with DatabaseValidations::DBPresenceValidator,
                 DatabaseValidations::BelongsToOptions.validator_options(name, foreign_key)

  include(DatabaseValidations::Rescuer)
end

#validates_db_uniqueness_of(*attributes) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/database_validations/lib/validates_db_uniqueness_of/uniqueness_handlers.rb', line 3

def validates_db_uniqueness_of(*attributes)
  Helpers.cache_valid_method!(self)

  @database_validations_storage ||= DatabaseValidations::OptionsStorage.new(self)

  options = attributes.extract_options!

  attributes.each do |attribute|
    @database_validations_storage.push_uniqueness(attribute, options.merge(attributes: attribute))
  end

  validates_with DatabaseValidations::DBUniquenessValidator,
                 DatabaseValidations::UniquenessOptions.validator_options(attributes, options)

  include(DatabaseValidations::Rescuer)
end