Module: Mongoid::Findable
- Extended by:
- Origin::Forwardable
- Defined in:
- lib/mongoid/findable.rb
Overview
This module defines the finder methods that hang off the document at the class level.
Instance Method Summary collapse
-
#count ⇒ Integer
Returns a count of records in the database.
-
#empty? ⇒ true, false
Returns true if count is zero.
-
#exists? ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
-
#find(*args) ⇒ Document, ...
Find a
Document
in several different ways. -
#find_by(attrs = {}) {|result| ... } ⇒ Document
Find the first
Document
given the conditions, or raises Mongoid::Errors::DocumentNotFound. -
#first ⇒ Document
Find the first
Document
given the conditions. -
#last ⇒ Document
Find the last
Document
given the conditions.
Instance Method Details
#count ⇒ Integer
Returns a count of records in the database. If you want to specify conditions use where.
48 49 50 |
# File 'lib/mongoid/findable.rb', line 48 def count with_default_scope.count end |
#empty? ⇒ true, false
Returns true if count is zero
58 59 60 |
# File 'lib/mongoid/findable.rb', line 58 def empty? count == 0 end |
#exists? ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
69 70 71 |
# File 'lib/mongoid/findable.rb', line 69 def exists? with_default_scope.exists? end |
#find(*args) ⇒ Document, ...
Find a Document
in several different ways.
If a String
is provided, it will be assumed that it is a representation of a Mongo::ObjectID and will attempt to find a single Document
based on that id. If a Symbol
and Hash
is provided then it will attempt to find either a single Document
or multiples based on the conditions provided and the first parameter.
87 88 89 |
# File 'lib/mongoid/findable.rb', line 87 def find(*args) with_default_scope.find(*args) end |
#find_by(attrs = {}) {|result| ... } ⇒ Document
Find the first Document
given the conditions, or raises Mongoid::Errors::DocumentNotFound
104 105 106 107 108 109 110 111 |
# File 'lib/mongoid/findable.rb', line 104 def find_by(attrs = {}) result = where(attrs).first if result.nil? && Mongoid.raise_not_found_error raise(Errors::DocumentNotFound.new(self, attrs)) end yield(result) if result && block_given? result end |
#first ⇒ Document
Find the first Document
given the conditions.
119 120 121 |
# File 'lib/mongoid/findable.rb', line 119 def first with_default_scope.first end |
#last ⇒ Document
Find the last Document
given the conditions.
129 130 131 |
# File 'lib/mongoid/findable.rb', line 129 def last with_default_scope.last end |