method
build_joins
v7.2.3 -
Show latest stable
- Class:
ActiveRecord::QueryMethods
build_joins(join_sources, aliases = nil)private
No documentation available.
# File activerecord/lib/active_record/relation/query_methods.rb, line 1865
def build_joins(join_sources, aliases = nil)
return join_sources if joins_values.empty? && left_outer_joins_values.empty?
buckets, join_type = build_join_buckets
named_joins = buckets[:named_join]
stashed_joins = buckets[:stashed_join]
leading_joins = buckets[:leading_join]
join_nodes = buckets[:join_node]
join_sources.concat(leading_joins) unless leading_joins.empty?
unless named_joins.empty? && stashed_joins.empty?
alias_tracker = alias_tracker(leading_joins + join_nodes, aliases)
join_dependency = construct_join_dependency(named_joins, join_type)
join_sources.concat(join_dependency.join_constraints(stashed_joins, alias_tracker, references_values))
end
join_sources.concat(join_nodes) unless join_nodes.empty?
join_sources
end