diff options
Diffstat (limited to 'activerecord/lib/active_record/validations/uniqueness.rb')
-rw-r--r-- | activerecord/lib/active_record/validations/uniqueness.rb | 9 |
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 |