Module: MongoMapper::Plugins::Associations
- Extended by:
- ActiveSupport::Concern
- Included in:
- Document, EmbeddedDocument
- Defined in:
- lib/mongo_mapper.rb,
lib/mongo_mapper/plugins/associations.rb,
lib/mongo_mapper/plugins/associations/base.rb,
lib/mongo_mapper/plugins/associations/proxy/proxy.rb,
lib/mongo_mapper/plugins/associations/one_association.rb,
lib/mongo_mapper/plugins/associations/proxy/one_proxy.rb,
lib/mongo_mapper/plugins/associations/many_association.rb,
lib/mongo_mapper/plugins/associations/proxy/collection.rb,
lib/mongo_mapper/plugins/associations/proxy/one_as_proxy.rb,
lib/mongo_mapper/plugins/associations/single_association.rb,
lib/mongo_mapper/plugins/associations/proxy/in_array_proxy.rb,
lib/mongo_mapper/plugins/associations/belongs_to_association.rb,
lib/mongo_mapper/plugins/associations/proxy/belongs_to_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/one_embedded_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/embedded_collection.rb,
lib/mongo_mapper/plugins/associations/proxy/many_embedded_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/many_documents_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/in_foreign_array_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/many_polymorphic_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/many_documents_as_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/belongs_to_polymorphic_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/one_embedded_polymorphic_proxy.rb,
lib/mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Base, BelongsToAssociation, BelongsToPolymorphicProxy, BelongsToProxy, Collection, EmbeddedCollection, InArrayProxy, InForeignArrayProxy, ManyAssociation, ManyDocumentsAsProxy, ManyDocumentsProxy, ManyEmbeddedPolymorphicProxy, ManyEmbeddedProxy, ManyPolymorphicProxy, OneAsProxy, OneAssociation, OneEmbeddedPolymorphicProxy, OneEmbeddedProxy, OneProxy, Proxy, SingleAssociation
Instance Method Summary
collapse
Instance Method Details
#associations ⇒ Object
68
69
70
|
# File 'lib/mongo_mapper/plugins/associations.rb', line 68
def associations
self.class.associations
end
|
#build_proxy(association) ⇒ Object
76
77
78
79
80
81
|
# File 'lib/mongo_mapper/plugins/associations.rb', line 76
def build_proxy(association)
proxy = association.proxy_class.new(self, association)
self.instance_variable_set(association.ivar, proxy)
proxy
end
|
#embedded_associations ⇒ Object
72
73
74
|
# File 'lib/mongo_mapper/plugins/associations.rb', line 72
def embedded_associations
self.class.embedded_associations
end
|
#get_proxy(association) ⇒ Object
83
84
85
86
|
# File 'lib/mongo_mapper/plugins/associations.rb', line 83
def get_proxy(association)
proxy = self.instance_variable_get(association.ivar) if instance_variable_defined?(association.ivar)
proxy ||= build_proxy(association)
end
|
#save_to_collection(options = {}) ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/mongo_mapper/plugins/associations.rb', line 88
def save_to_collection(options={})
super if defined?(super)
associations.each do |association_name, association|
proxy = get_proxy(association)
proxy.save_to_collection(options) if proxy.proxy_respond_to?(:save_to_collection) && association.autosave?
end
end
|