instance method
unscoped
Ruby on Rails 8.0.4
Since v4.0.13Signature
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
-
blockblock
Source
# File activerecord/lib/active_record/scoping/default.rb, line 50
def unscoped(&block)
block_given? ? relation.scoping(&block) : relation
end
Defined in activerecord/lib/active_record/scoping/default.rb line 50
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Scoping::Default::ClassMethods