Method: ActiveRecord::Scoping::Default::ClassMethods#unscoped
- Defined in:
- lib/active_record/scoping/default.rb
#unscoped ⇒ Object
Returns a scope for the model without the default_scope.
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"
This method also accepts a block. All queries inside the block will not use the default_scope:
Post.unscoped {
Post.limit(10) # Fires "SELECT * FROM posts LIMIT 10"
}
39 40 41 |
# File 'lib/active_record/scoping/default.rb', line 39 def unscoped block_given? ? relation.scoping { yield } : relation end |