instance method unscoped

Ruby on Rails edge

Since v4.0.13

Available in: 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.4 v8.0.5.1 v8.1.4 edge

Signature

unscoped(&block)

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

“‘ class Post < ActiveRecord::Base

belongs_to :user

def self.default_scope
  where(published: true)
end

end

class User < ActiveRecord::Base

has_many :posts

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” User.find(1).posts # Fires “SELECT * FROM posts WHERE published = true AND posts.user_id = 1” User.find(1).posts.unscoped # 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"

} “‘

Parameters

block block
Source
# File activerecord/lib/active_record/scoping/default.rb, line 54
        def unscoped(&block)
          block_given? ? relation.scoping(&block) : relation
        end

Defined in activerecord/lib/active_record/scoping/default.rb line 54 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Scoping::Default::ClassMethods

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