build_default_scope(base_rel = nil) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/scoping/default.rb, line 104
          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
Register or log in to add new notes.