instance method classify_join_values

Ruby on Rails edge

Since edge Private — implementation detail, not part of the public API

Signature

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

values req
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

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close