instance method
classify_join_values
Ruby on Rails edge
Since edge Private — implementation detail, not part of the public APISignature
classify_join_values(values)
Sorts the values passed to #joins and #left_outer_joins by what they are: association names to build a join dependency from, join dependencies merged in from a relation of another model, names of CTEs the relation defines, and Arel nodes.
Parameters
-
valuesreq
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 2097
def classify_join_values(values)
association_names = []
join_dependencies = []
cte_names = []
nodes = []
values.each do |value|
case value
when Symbol
if cte_join?(value)
cte_names << value
else
association_names << value
end
when Hash, Array
association_names << value
when ActiveRecord::Associations::JoinDependency
join_dependencies << value
else
nodes << value
end
end
JoinValues.new(association_names, join_dependencies, cte_names, nodes)
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 2097
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods