diff options
Diffstat (limited to 'activerecord/lib/active_record')
4 files changed, 6 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb index e56ece0300..fdb6fbeeb4 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb @@ -10,9 +10,10 @@ module ActiveRecord def to_sql(arel, binds = []) if arel.respond_to?(:ast) binds = binds.dup - visitor.accept(arel.ast) do + c = visitor.accept(arel.ast, Arel::Collectors::SQLString.new) do quote(*binds.shift.reverse) end + c.value else arel end diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index 0ad7c207b3..f1fc7b62e2 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -520,9 +520,10 @@ module ActiveRecord arel = relation.arel binds = arel.bind_values + relation.bind_values - visitor.accept(arel.ast) do + c = visitor.accept(arel.ast, Arel::Collectors::SQLString.new) do connection.quote(*binds.shift.reverse) end + c.value end end diff --git a/activerecord/lib/active_record/sanitization.rb b/activerecord/lib/active_record/sanitization.rb index 5a71c13d91..936f8dba02 100644 --- a/activerecord/lib/active_record/sanitization.rb +++ b/activerecord/lib/active_record/sanitization.rb @@ -92,7 +92,7 @@ module ActiveRecord table = Arel::Table.new(table_name, arel_engine).alias(default_table_name) PredicateBuilder.build_from_hash(self, attrs, table).map { |b| - connection.visitor.accept b + connection.visitor.compile b }.join(' AND ') end alias_method :sanitize_sql_hash, :sanitize_sql_hash_for_conditions diff --git a/activerecord/lib/active_record/statement_cache.rb b/activerecord/lib/active_record/statement_cache.rb index 6090dfeb13..183e795e8f 100644 --- a/activerecord/lib/active_record/statement_cache.rb +++ b/activerecord/lib/active_record/statement_cache.rb @@ -33,7 +33,7 @@ module ActiveRecord end def self.query(visitor, ast) - Query.new visitor.accept(ast) + Query.new visitor.accept(ast, Arel::Collectors::SQLString.new).value end def self.partial_query(visitor, ast) |