Method: Mongoid::Scopable::ClassMethods#default_scope

Defined in:
lib/mongoid/scopable.rb

#default_scope(value = nil) ⇒ Proc

Add a default scope to the model. This scope will be applied to all criteria unless #unscoped is specified.

Examples:

Define a default scope with a criteria.

class Band
  include Mongoid::Document
  field :active, type: Boolean
  default_scope where(active: true)
end

Define a default scope with a proc.

class Band
  include Mongoid::Document
  field :active, type: Boolean
  default_scope ->{ where(active: true) }
end

Raises:



83
84
85
86
87
# File 'lib/mongoid/scopable.rb', line 83

def default_scope(value = nil)
  value = Proc.new { yield } if block_given?
  check_scope_validity(value)
  self.default_scoping = process_default_scope(value)
end