Class: ActiveMongoid::Associations::DocumentRelation::Referenced::Many

Inherits:
Many
  • Object
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

Constructor Details

This class inherits a constructor from ActiveMongoid::Associations::Many

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object (private)



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(, object, type = nil)
  crit = .klass.where(.foreign_key => object)
  if .polymorphic?
    crit = crit.where(.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_defaultObject



91
92
93
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 91

def foreign_key_default
  nil
end

.foreign_key_suffixObject



95
96
97
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 95

def foreign_key_suffix
  "_id"
end

.macroObject



103
104
105
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 103

def macro
  :has_many_documents
end

.primary_key_defaultObject



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

Returns:

  • (Boolean)


83
84
85
# File 'lib/active_mongoid/associations/document_relation/referenced/many.rb', line 83

def stores_foreign_key?
  false
end