Module: Mongoid::Relations
- Extended by:
- ActiveSupport::Concern
- Includes:
- Accessors, AutoSave, Builders, Cascading, CounterCache, Cyclic, Macros, Polymorphic, Reflections, Synchronization, Touchable
- Included in:
- Composable
- Defined in:
- lib/mongoid/relations.rb,
lib/mongoid/relations/one.rb,
lib/mongoid/relations/many.rb,
lib/mongoid/relations/proxy.rb,
lib/mongoid/relations/cyclic.rb,
lib/mongoid/relations/macros.rb,
lib/mongoid/relations/binding.rb,
lib/mongoid/relations/builder.rb,
lib/mongoid/relations/options.rb,
lib/mongoid/relations/builders.rb,
lib/mongoid/relations/metadata.rb,
lib/mongoid/relations/accessors.rb,
lib/mongoid/relations/auto_save.rb,
lib/mongoid/relations/cascading.rb,
lib/mongoid/relations/touchable.rb,
lib/mongoid/relations/constraint.rb,
lib/mongoid/relations/conversions.rb,
lib/mongoid/relations/embedded/in.rb,
lib/mongoid/relations/marshalable.rb,
lib/mongoid/relations/polymorphic.rb,
lib/mongoid/relations/reflections.rb,
lib/mongoid/relations/embedded/one.rb,
lib/mongoid/relations/counter_cache.rb,
lib/mongoid/relations/embedded/many.rb,
lib/mongoid/relations/referenced/in.rb,
lib/mongoid/relations/nested_builder.rb,
lib/mongoid/relations/referenced/one.rb,
lib/mongoid/relations/referenced/many.rb,
lib/mongoid/relations/synchronization.rb,
lib/mongoid/relations/cascading/delete.rb,
lib/mongoid/relations/cascading/destroy.rb,
lib/mongoid/relations/cascading/nullify.rb,
lib/mongoid/relations/cascading/restrict.rb,
lib/mongoid/relations/embedded/batchable.rb,
lib/mongoid/relations/targets/enumerable.rb,
lib/mongoid/relations/bindings/embedded/in.rb,
lib/mongoid/relations/builders/embedded/in.rb,
lib/mongoid/relations/bindings/embedded/one.rb,
lib/mongoid/relations/builders/embedded/one.rb,
lib/mongoid/relations/bindings/embedded/many.rb,
lib/mongoid/relations/bindings/referenced/in.rb,
lib/mongoid/relations/builders/embedded/many.rb,
lib/mongoid/relations/builders/referenced/in.rb,
lib/mongoid/relations/bindings/referenced/one.rb,
lib/mongoid/relations/builders/referenced/one.rb,
lib/mongoid/relations/referenced/many_to_many.rb,
lib/mongoid/relations/bindings/referenced/many.rb,
lib/mongoid/relations/builders/referenced/many.rb,
lib/mongoid/relations/builders/nested_attributes/one.rb,
lib/mongoid/relations/builders/nested_attributes/many.rb,
lib/mongoid/relations/bindings/referenced/many_to_many.rb,
lib/mongoid/relations/builders/referenced/many_to_many.rb
Overview
All classes and modules under the relations namespace handle the functionality that has to do with embedded and referenced (relational) associations.
Defined Under Namespace
Modules: Accessors, AutoSave, Bindings, Builders, Cascading, ClassMethods, Conversions, CounterCache, Cyclic, Embedded, Macros, Marshalable, Options, Polymorphic, Referenced, Reflections, Synchronization, Targets, Touchable Classes: Binding, Builder, Constraint, Many, Metadata, NestedBuilder, One, Proxy
Instance Attribute Summary collapse
-
#metadata ⇒ Object
Returns the value of attribute metadata.
Instance Method Summary collapse
-
#embedded? ⇒ true, false
Determine if the document itself is embedded in another document via the proper channels.
-
#embedded_many? ⇒ true, false
Determine if the document is part of an embeds_many relation.
-
#embedded_one? ⇒ true, false
Determine if the document is part of an embeds_one relation.
-
#metadata_name ⇒ Symbol
Get the metadata name for this document.
-
#referenced_many? ⇒ true, false
Determine if the document is part of an references_many relation.
-
#referenced_one? ⇒ true, false
Determine if the document is part of an references_one relation.
-
#reload_relations ⇒ Hash
Convenience method for iterating through the loaded relations and reloading them.
Methods included from Touchable
Methods included from Synchronization
#remove_inverse_keys, #syncable?, #synced, #synced?, #update_inverse_keys
Methods included from Reflections
#reflect_on_all_associations, #reflect_on_association
Methods included from Macros
Methods included from Cascading
Methods included from AutoSave
#__autosaving__, #autosaved?, #changed_for_autosave?, #relation_changed_for_autosave
Methods included from Accessors
#__build__, #create_relation, #relation_exists?, #reset_relation_criteria, #set_relation
Instance Attribute Details
#metadata ⇒ Object
Returns the value of attribute metadata.
49 50 51 |
# File 'lib/mongoid/relations.rb', line 49 def @metadata end |
Instance Method Details
#embedded? ⇒ true, false
Determine if the document itself is embedded in another document via the proper channels. (If it has a parent document.)
60 61 62 |
# File 'lib/mongoid/relations.rb', line 60 def @embedded ||= (cyclic ? _parent.present? : self.class.) end |
#embedded_many? ⇒ true, false
Determine if the document is part of an embeds_many relation.
72 73 74 |
# File 'lib/mongoid/relations.rb', line 72 def && .macro == :embeds_many end |
#embedded_one? ⇒ true, false
Determine if the document is part of an embeds_one relation.
84 85 86 |
# File 'lib/mongoid/relations.rb', line 84 def && .macro == :embeds_one end |
#metadata_name ⇒ Symbol
Get the metadata name for this document. If no metadata was defined will raise an error.
99 100 101 102 |
# File 'lib/mongoid/relations.rb', line 99 def raise Errors::NoMetadata.new(self.class.name) unless .name end |
#referenced_many? ⇒ true, false
Determine if the document is part of an references_many relation.
112 113 114 |
# File 'lib/mongoid/relations.rb', line 112 def referenced_many? && .macro == :has_many end |
#referenced_one? ⇒ true, false
Determine if the document is part of an references_one relation.
124 125 126 |
# File 'lib/mongoid/relations.rb', line 124 def referenced_one? && .macro == :has_one end |
#reload_relations ⇒ Hash
Convenience method for iterating through the loaded relations and reloading them.
137 138 139 140 141 142 143 144 145 |
# File 'lib/mongoid/relations.rb', line 137 def reload_relations relations.each_pair do |name, | if instance_variable_defined?("@_#{name}") if _parent.nil? || instance_variable_get("@_#{name}") != _parent remove_instance_variable("@_#{name}") end end end end |