module ActiveRecord::HierarchicalQuery
Constants
- DELEGATOR_SCOPE
@api private
- VERSION
Public Instance Methods
join_recursive(join_options = {}, &block)
click to toggle source
Performs a join to recursive subquery which should be built within a block.
@example
MyModel.join_recursive do |query| query.start_with(parent_id: nil) .connect_by(id: :parent_id) .where('depth < ?', 5) .order_siblings(name: :desc) end
@param [Hash] join_options @option join_options [String, Symbol] :as aliased name of joined
table (`%table_name%__recursive` by default)
@yield [query] @yieldparam [ActiveRecord::HierarchicalQuery::Query] query Hierarchical query @raise [ArgumentError] if block is omitted
# File lib/active_record/hierarchical_query.rb, line 31 def join_recursive(join_options = {}, &block) raise ArgumentError, 'block expected' unless block_given? query = Query.new(klass) if block.arity == 0 query.instance_eval(&block) else block.call(query) end query.join_to(self, join_options) end