method
to_sql_and_binds
v5.2.3 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::DatabaseStatements
to_sql_and_binds(arel_or_sql_string, binds = [])private
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 17
def to_sql_and_binds(arel_or_sql_string, binds = []) # :nodoc:
if arel_or_sql_string.respond_to?(:ast)
unless binds.empty?
raise "Passing bind parameters with an arel AST is forbidden. " "The values must be stored on the AST directly"
end
if prepared_statements
sql, binds = visitor.accept(arel_or_sql_string.ast, collector).value
if binds.length > bind_params_length
unprepared_statement do
sql, binds = to_sql_and_binds(arel_or_sql_string)
visitor.preparable = false
end
end
else
sql = visitor.accept(arel_or_sql_string.ast, collector).value
end
[sql.freeze, binds]
else
visitor.preparable = false if prepared_statements
[arel_or_sql_string.dup.freeze, binds]
end
end