Class: ActiveMongoid::Associations::RecordRelation::Referenced::One

Inherits:
One
  • Object
show all
Defined in:
lib/active_mongoid/associations/record_relation/referenced/one.rb

Instance Attribute Summary

Attributes inherited from Proxy

#__metadata__, #base, #target

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from One

#==, #clear, #respond_to?

Methods inherited from Proxy

#==, #init, #klass, #method_missing

Constructor Details

#initialize(base, target, metadata) ⇒ One

Returns a new instance of One.



7
8
9
10
11
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 7

def initialize(base, target, )
  init(base, target, ) do
    bind_one
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveMongoid::Associations::Proxy

Class Method Details

.builder(base, meta, object) ⇒ Object



57
58
59
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 57

def builder(base, meta, object)
  ActiveMongoid::Associations::Builders::One.new(base, meta, object)
end

.criteria(metadata, object, type = nil) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 61

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



37
38
39
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 37

def foreign_key(name)
  "#{name}#{foreign_key_suffix}"
end

.foreign_key_defaultObject



41
42
43
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 41

def foreign_key_default
  nil
end

.foreign_key_suffixObject



45
46
47
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 45

def foreign_key_suffix
  "_id"
end

.macroObject



53
54
55
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 53

def macro
  :has_one_record
end

.primary_key_defaultObject



49
50
51
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 49

def primary_key_default
  "_id"
end

.stores_foreign_key?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 33

def stores_foreign_key?
  false
end

Instance Method Details

#substitute(replacement) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/active_mongoid/associations/record_relation/referenced/one.rb', line 13

def substitute(replacement)
  unbind_one
  if base.persisted?
    if .destructive?
      send(.dependent)
    else
      save if persisted?
    end
  end
  One.new(base, replacement, ) if replacement
end