Class: ActiveMongoid::Associations::DocumentRelation::Referenced::Many
- Inherits:
-
Many
- Object
- Proxy
- Many
- ActiveMongoid::Associations::DocumentRelation::Referenced::Many
show all
- Defined in:
- lib/active_mongoid/associations/document_relation/referenced/many.rb
Instance Attribute Summary
Attributes inherited from Proxy
#__metadata__, #base, #target
Class Method Summary
collapse
Methods inherited from Many
#<<, #blank?, #build, #concat, #create, #create!, #delete, #delete_all, #destroy_all, #each, #exists?, #find, #find_or_create_by, #find_or_initialize_by, #initialize, #nil?, #nullify, #purge, #raise_unsaved, #respond_to?, #scoped, #substitute, #unscoped
Methods inherited from Proxy
#==, #init, #klass
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
71
72
73
74
75
76
77
78
79
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 71
def method_missing(name, *args, &block)
if target.respond_to?(name)
target.send(name, *args, &block)
else
klass.send(:with_scope, criteria) do
criteria.public_send(name, *args, &block)
end
end
end
|
Class Method Details
.builder(base, meta, object) ⇒ Object
107
108
109
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 107
def builder(base, meta, object)
ActiveMongoid::Associations::Builders::Many.new(base, meta, object || [])
end
|
.criteria(metadata, object, type = nil) ⇒ Object
111
112
113
114
115
116
117
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 111
def criteria(metadata, object, type = nil)
crit = metadata.klass.where(metadata.foreign_key => object)
if metadata.polymorphic?
crit = crit.where(metadata.type => type.name)
end
crit
end
|
.foreign_key(name) ⇒ Object
87
88
89
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 87
def foreign_key(name)
"#{name}#{foreign_key_suffix}"
end
|
.foreign_key_default ⇒ Object
91
92
93
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 91
def foreign_key_default
nil
end
|
.foreign_key_suffix ⇒ Object
95
96
97
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 95
def foreign_key_suffix
"_id"
end
|
.macro ⇒ Object
103
104
105
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 103
def macro
:has_many_documents
end
|
.primary_key_default ⇒ Object
99
100
101
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 99
def primary_key_default
"id"
end
|
.stores_foreign_key? ⇒ Boolean
83
84
85
|
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 83
def stores_foreign_key?
false
end
|