method
build_with_expression_from_value
v8.0.0 -
Show latest stable
- Class:
ActiveRecord::QueryMethods
build_with_expression_from_value(value, nested = false)private
No documentation available.
# File activerecord/lib/active_record/relation/query_methods.rb, line 1929
def build_with_expression_from_value(value, nested = false)
case value
when Arel::Nodes::SqlLiteral then Arel::Nodes::Grouping.new(value)
when ActiveRecord::Relation
if nested
value.arel.ast
else
value.arel
end
when Arel::SelectManager then value
when Array
return build_with_expression_from_value(value.first, false) if value.size == 1
parts = value.map do |query|
build_with_expression_from_value(query, true)
end
parts.reduce do |result, value|
Arel::Nodes::UnionAll.new(result, value)
end
else
raise ArgumentError, "Unsupported argument type: `#{value}` #{value.class}"
end
end