method
build_default_scope
rails latest stable - Class:
ActiveRecord::Scoping::Default::ClassMethods
build_default_scope(relation = relation(), all_queries: nil)private
No documentation available.
# File activerecord/lib/active_record/scoping/default.rb, line 145
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