instance method unscoped

Ruby on Rails 6.0.6

Since v4.0.13

Available in: v4.0.13 v4.1.16 v4.2.9 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

unscoped()

Returns a scope for the model without the previously set scopes.

class Post < ActiveRecord::Base
  def self.default_scope
    where(published: true)
  end
end

Post.all                                  # Fires "SELECT * FROM posts WHERE published = true"
Post.unscoped.all                         # Fires "SELECT * FROM posts"
Post.where(published: false).unscoped.all # Fires "SELECT * FROM posts"

This method also accepts a block. All queries inside the block will not use the previously set scopes.

Post.unscoped {
  Post.limit(10) # Fires "SELECT * FROM posts LIMIT 10"
}
Source
# File activerecord/lib/active_record/scoping/default.rb, line 33
        def unscoped
          block_given? ? relation.scoping { yield } : relation
        end

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