instance method
build_default_scope
Ruby on Rails 6.0.6
Since v5.2.8.1 PrivateSignature
build_default_scope(relation = relation())
No documentation comment.
Parameters
-
relationopt = relation()
Source
# File activerecord/lib/active_record/scoping/default.rb, line 102
def build_default_scope(relation = relation())
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
relation.merge!(scope)
end
end
elsif default_scopes.any?
evaluate_default_scope do
default_scopes.inject(relation) do |default_scope, scope|
scope = scope.respond_to?(:to_proc) ? scope : scope.method(:call)
default_scope.instance_exec(&scope) || default_scope
end
end
end
end
Defined in activerecord/lib/active_record/scoping/default.rb line 102
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Scoping::Default::ClassMethods