aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/validations/uniqueness.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/validations/uniqueness.rb')
-rw-r--r--activerecord/lib/active_record/validations/uniqueness.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb
index 7efd312357..4ff851dfa1 100644
--- a/activerecord/lib/active_record/validations/uniqueness.rb
+++ b/activerecord/lib/active_record/validations/uniqueness.rb
@@ -2,10 +2,14 @@ module ActiveRecord
module Validations
class UniquenessValidator < ActiveModel::EachValidator
def initialize(options)
- @klass = options.delete(:klass)
super(options.reverse_merge(:case_sensitive => true))
end
+ # Unfortunately, we have to tie Uniqueness validators to a class.
+ def setup(klass)
+ @klass = klass
+ end
+
def validate_each(record, attribute, value)
finder_class = find_finder_class_for(record)
table = finder_class.active_relation
@@ -170,8 +174,7 @@ module ActiveRecord
# such a case.
#
def validates_uniqueness_of(*attr_names)
- options = attr_names.extract_options!
- validates_with UniquenessValidator, options.merge(:attributes => attr_names, :klass => self)
+ validates_with UniquenessValidator, _merge_attributes(attr_names)
end
end
end