method
build_named_bound_sql_literal
v7.2.3 -
Show latest stable
- Class:
ActiveRecord::QueryMethods
build_named_bound_sql_literal(statement, values)private
No documentation available.
# File activerecord/lib/active_record/relation/query_methods.rb, line 1666
def build_named_bound_sql_literal(statement, values)
bound_values = values.transform_values do |value|
if ActiveRecord::Relation === value
Arel.sql(value.to_sql)
elsif value.respond_to?(:map) && !value.acts_like?(:string)
values = value.map { |v| v.respond_to?(:id_for_database) ? v.id_for_database : v }
values.empty? ? nil : values
else
value = value.id_for_database if value.respond_to?(:id_for_database)
value
end
end
begin
Arel::Nodes::BoundSqlLiteral.new("(#{statement})", nil, bound_values)
rescue Arel::BindError => error
raise ActiveRecord::PreparedStatementInvalid, error.message
end
end