Sha256: 998708e69175589cbf9e6aada6560d57fc5ff48760afcff9f35af427c747f31c
Contents?: true
Size: 542 Bytes
Versions: 13
Compression:
Stored size: 542 Bytes
Contents
class BazaModels::Validators::UniquenessValidator < BazaModels::Validators::BaseValidator def validate(model, value) query_same = model.class.where(attribute_name => value) if scope scope.each do |scope_part| query_same = query_same.where(scope_part => model.__send__(scope_part)) end end model.errors.add(attribute_name, "isn't unique") if query_same.any? end private def scope scope = @args.fetch(:uniqueness)[:scope] scope = [scope] if scope && !scope.is_a?(Array) scope end end
Version data entries
13 entries across 13 versions & 1 rubygems