Module: Elasticsearch::Persistence::Scoping::Default::ClassMethods

Defined in:
lib/elasticsearch/persistence/scoping/default.rb

Instance Method Summary collapse

Instance Method Details

#before_remove_constObject

:nodoc:



37
38
39
# File 'lib/elasticsearch/persistence/scoping/default.rb', line 37

def before_remove_const #:nodoc:
  self.current_scope = nil
end

#unscopedObject

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"
}


33
34
35
# File 'lib/elasticsearch/persistence/scoping/default.rb', line 33

def unscoped
  block_given? ? relation.scoping { yield } : relation
end