class BazaModels::Validators::UniquenessValidator

Public Instance Methods

validate(model, value) click to toggle source
# File lib/baza_models/validators/uniqueness_validator.rb, line 2
def validate(model, value)
  query_same = model.class.where(attribute_name => value)

  scope&.each do |scope_part|
    query_same = query_same.where(scope_part => model.__send__(scope_part))
  end

  model.errors.add(attribute_name, "isn't unique") if query_same.any?
end

Private Instance Methods

scope() click to toggle source
# File lib/baza_models/validators/uniqueness_validator.rb, line 14
def scope
  scope = @args.fetch(:uniqueness)[:scope]
  scope = [scope] if scope && !scope.is_a?(Array)
  scope
end