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
|