Method: Uniqueness::Model#uniqueness_validation

Defined in:
lib/uniqueness/model.rb

#uniqueness_validationObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/uniqueness/model.rb', line 52

def uniqueness_validation
  self.class.uniqueness_options.each do |field, options|
    next unless new_record? || self.changes.has_key?(field)
    value = send(field)
    if value.nil?
      errors.add(field, 'should not be empty')
    else
      conditions = {}
      options[:scope].each do |s|
        conditions[s] = send(s)
      end
      conditions[field] = value
      query = self.class.where(conditions)
      errors.add(field, 'should be unique') if query.any?
    end
  end
end