instance method scoping

Ruby on Rails 5.0.7.2

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

scoping()

Scope all queries to the current scope.

Comment.where(post_id: 1).scoping do
  Comment.first
end
# => SELECT "comments".* FROM "comments" WHERE "comments"."post_id" = 1 ORDER BY "comments"."id" ASC LIMIT 1

Please check unscoped if you want to remove all previous scopes (including the default_scope) during the execution of a block.

Source
# File activerecord/lib/active_record/relation.rb, line 349
    def scoping
      previous, klass.current_scope = klass.current_scope(true), self
      yield
    ensure
      klass.current_scope = previous
    end

Defined in activerecord/lib/active_record/relation.rb line 349 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Relation

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close