Class: Mongoid::Relations::Many
- Defined in:
- lib/mongoid/relations/many.rb
Overview
This is the superclass for all many to one and many to many relation proxies.
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Proxy
#base, #loaded, #metadata, #target
Instance Method Summary collapse
-
#blank? ⇒ true, false
Is the relation empty?.
-
#exists? ⇒ true, false
Determine if any documents in this relation exist in the database.
-
#find_or_create_by(attrs = {}, &block) ⇒ Document
Find the first document given the conditions, or creates a new document with the conditions that were supplied.
-
#find_or_initialize_by(attrs = {}, &block) ⇒ Document
Find the first
Document
given the conditions, or instantiates a new document with the conditions that were supplied. -
#nil? ⇒ false
This proxy can never be nil.
-
#respond_to?(name, include_private = false) ⇒ true, false
Since method_missing is overridden we should override this as well.
-
#scoped ⇒ Criteria
This is public access to the relation’s criteria.
-
#serializable_hash(options = {}) ⇒ Hash
Gets the document as a serializable hash, used by ActiveModel’s JSON and XML serializers.
Methods inherited from Proxy
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Mongoid::Relations::Proxy
Instance Method Details
#blank? ⇒ true, false
Is the relation empty?
20 21 22 |
# File 'lib/mongoid/relations/many.rb', line 20 def blank? size == 0 end |
#exists? ⇒ true, false
Determine if any documents in this relation exist in the database.
30 31 32 |
# File 'lib/mongoid/relations/many.rb', line 30 def exists? count > 0 end |
#find_or_create_by(attrs = {}, &block) ⇒ Document
Find the first document given the conditions, or creates a new document with the conditions that were supplied.
43 44 45 |
# File 'lib/mongoid/relations/many.rb', line 43 def find_or_create_by(attrs = {}, &block) find_or(:create, attrs, &block) end |
#find_or_initialize_by(attrs = {}, &block) ⇒ Document
Find the first Document
given the conditions, or instantiates a new document with the conditions that were supplied
56 57 58 |
# File 'lib/mongoid/relations/many.rb', line 56 def find_or_initialize_by(attrs = {}, &block) find_or(:build, attrs, &block) end |
#nil? ⇒ false
This proxy can never be nil.
68 69 70 |
# File 'lib/mongoid/relations/many.rb', line 68 def nil? false end |
#respond_to?(name, include_private = false) ⇒ true, false
Since method_missing is overridden we should override this as well.
82 83 84 85 |
# File 'lib/mongoid/relations/many.rb', line 82 def respond_to?(name, include_private = false) [].respond_to?(name, include_private) || klass.respond_to?(name, include_private) || super end |
#scoped ⇒ Criteria
This is public access to the relation’s criteria.
95 96 97 |
# File 'lib/mongoid/relations/many.rb', line 95 def scoped criteria end |
#serializable_hash(options = {}) ⇒ Hash
Gets the document as a serializable hash, used by ActiveModel’s JSON and XML serializers. This override is just to be able to pass the :include and :except options to get associations in the hash.
115 116 117 |
# File 'lib/mongoid/relations/many.rb', line 115 def serializable_hash( = {}) target.map { |document| document.serializable_hash() } end |