From efe5986696960c53deca53312cc6d67c0a303537 Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Fri, 26 Dec 2014 16:21:20 -0700 Subject: [PATCH] We don't need to cast the value a second time in uniqueness validations Part of the larger refactoring to remove type casting from Arel. Since we've already cast the value a few lines above, we don't need to re-cast it later. We can inform Arel of this by wrapping it in an `Arel::Nodes::Quoted`, which will no longer be required in Rails 5.1 --- activerecord/lib/active_record/validations/uniqueness.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb index 4dbe475331..255063e951 100644 --- a/activerecord/lib/active_record/validations/uniqueness.rb +++ b/activerecord/lib/active_record/validations/uniqueness.rb @@ -65,6 +65,7 @@ module ActiveRecord value = value.to_s[0, column.limit] end + value = Arel::Nodes::Quoted.new(value) if !options[:case_sensitive] && value && column.text? # will use SQL LOWER function before comparison, unless it detects a case insensitive collation klass.connection.case_insensitive_comparison(table, attribute, column, value)