instance method build_default_scope

Ruby on Rails 7.0.10

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

build_default_scope(relation = relation(), all_queries: nil)

No documentation comment.

Parameters

relation opt = relation()
all_queries key = nil
Source
# File activerecord/lib/active_record/scoping/default.rb, line 135
          def build_default_scope(relation = relation(), all_queries: nil)
            return if abstract_class?

            if default_scope_override.nil?
              self.default_scope_override = !Base.is_a?(method(:default_scope).owner)
            end

            if default_scope_override
              # The user has defined their own default scope method, so call that
              evaluate_default_scope do
                relation.scoping { default_scope }
              end
            elsif default_scopes.any?
              evaluate_default_scope do
                default_scopes.inject(relation) do |combined_scope, scope_obj|
                  if execute_scope?(all_queries, scope_obj)
                    scope = scope_obj.scope.respond_to?(:to_proc) ? scope_obj.scope : scope_obj.scope.method(:call)

                    combined_scope.instance_exec(&scope) || combined_scope
                  else
                    combined_scope
                  end
                end
              end
            end
          end

Defined in activerecord/lib/active_record/scoping/default.rb line 135 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Scoping::Default::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close