diff options
Diffstat (limited to 'activerecord/lib/active_record/validations')
-rw-r--r-- | activerecord/lib/active_record/validations/uniqueness.rb | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb index 4f5b157af9..2677fade18 100644 --- a/activerecord/lib/active_record/validations/uniqueness.rb +++ b/activerecord/lib/active_record/validations/uniqueness.rb @@ -67,22 +67,18 @@ module ActiveRecord end attribute_name = attribute.to_s + value = klass.predicate_builder.build_bind_attribute(attribute_name, value) table = klass.arel_table column = klass.columns_hash[attribute_name] - cast_type = klass.type_for_attribute(attribute_name) - value = Relation::QueryAttribute.new(attribute_name, value, cast_type) comparison = if !options[:case_sensitive] # will use SQL LOWER function before comparison, unless it detects a case insensitive collation klass.connection.case_insensitive_comparison(table, attribute, column, value) else klass.connection.case_sensitive_comparison(table, attribute, column, value) end - klass.unscoped.tap do |scope| - parts = [comparison] - scope.where_clause += Relation::WhereClause.new(parts) - end + klass.unscoped.where!(comparison) end def scope_relation(record, relation) |