instance method build_default_scope

Ruby on Rails 5.2.8.1

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(base_rel = nil)

No documentation comment.

Parameters

base_rel opt = nil
Source
# File activerecord/lib/active_record/scoping/default.rb, line 103
          def build_default_scope(base_rel = 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
                if scope = default_scope
                  (base_rel ||= relation).merge!(scope)
                end
              end
            elsif default_scopes.any?
              base_rel ||= relation
              evaluate_default_scope do
                default_scopes.inject(base_rel) do |default_scope, scope|
                  scope = scope.respond_to?(:to_proc) ? scope : scope.method(:call)
                  default_scope.merge!(base_rel.instance_exec(&scope))
                end
              end
            end
          end

Defined in activerecord/lib/active_record/scoping/default.rb line 103 · 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