Class: Mongoid::Association::Referenced::BelongsTo::Proxy
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           ::Mongoid::Association::One,::Mongoid::Association::Proxy,
          Forwardable | |
| Instance Chain: | |
| Inherits: | Mongoid::Association::One 
 | 
| Defined in: | lib/mongoid/association/referenced/belongs_to/proxy.rb | 
Overview
Transparent proxy for belong_to associations. An instance of this class is returned when calling the association getter method on the subject document. This class inherits from Mongoid::Association::Proxy and forwards most of its methods to the target of the association, i.e. the document on the opposite-side collection which must be loaded.
Constant Summary
::Mongoid::Association::Proxy - Inherited
  
Class Attribute Summary
- 
    
      .embedded?  ⇒ false 
    
    readonly
    Returns true if the association is an embedded one. 
Class Method Summary
- 
    
      .eager_loader(association, docs)  ⇒ Mongoid::Association::Referenced::BelongsTo::Eager 
    
    Get the Eagerobject for this type of association.
- 
    
      .new(base, target, association)  ⇒ Proxy 
    
    constructor
    Instantiate a new belongs_to association proxy. 
::Mongoid::Association::Proxy - Inherited
| .apply_ordering | Apply ordering to the criteria if it was defined on the association. | 
| .new | Sets the target and the association metadata properties. | 
Instance Attribute Summary
- 
    
      #persistable?  ⇒ true | false 
    
    readonly
    private
    Are we able to persist this association? 
::Mongoid::Association::Proxy - Inherited
| #_association, | |
| #_base | Model instance for the base of the association. | 
| #_target | Model instance for one to one associations, or array of model instances for one to many associations, for the target of the association. | 
::Mongoid::Threaded::Lifecycle - Included
| #_assigning | Begin the assignment of attributes. | 
| #_assigning? | Is the current thread in assigning mode? | 
| #_binding | Execute a block in binding mode. | 
| #_binding? | Is the current thread in binding mode? | 
| #_building | Execute a block in building mode. | 
| #_building? | Is the current thread in building mode? | 
| #_creating? | Is the current thread in creating mode? | 
| #_loading | Execute a block in loading mode. | 
| #_loading? | Is the current thread in loading mode? | 
Instance Method Summary
- 
    
      #nullify  
    
    Removes the association between the base document and the target document by deleting the foreign key and the reference, orphaning the target document in the process. 
- 
    
      #substitute(replacement)  ⇒ self | nil 
    
    Substitutes the supplied target documents for the existing document in the association. 
- 
    
      #binding  ⇒ Binding 
    
    private
    Instantiate the binding associated with this association. 
- 
    
      #normalize(replacement)  ⇒ Document 
    
    private
    Internal use only
    Internal use only
    Normalize the value provided as a replacement for substitution. 
::Mongoid::Evolvable - Included
| #__evolve_object_id__ | Evolve the document into an object id. | 
::Mongoid::Association::One - Inherited
| #__evolve_object_id__ | Evolve the proxy document into an object id. | 
| #clear | Clear this relation - same as calling #delete on the document. | 
| #in_memory | Get all the documents in the relation that are loaded into memory. | 
| #respond_to? | Since method_missing is overridden we should override this as well. | 
::Mongoid::Association::Proxy - Inherited
| #extend_proxies | Allow extension to be an array and extend each module. | 
| #extend_proxy, | |
| #klass | Get the class from the association, or return nil if no association present. | 
| #reset_unloaded | Resets the criteria inside the association proxy. | 
| #substitutable | The default substitutable object for an association proxy is the clone of the target. | 
::Mongoid::Association::Marshalable - Included
| #marshal_dump | Provides the data needed to Marshal.dump an association proxy. | 
| #marshal_load | Takes the provided data and sets it back on the proxy. | 
Constructor Details
    .new(base, target, association)  ⇒ Proxy 
  
Instantiate a new belongs_to association proxy.
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 26
def initialize(base, target, association) super do characterize_one(_target) bind_one end end
Class Attribute Details
    .embedded?  ⇒ false  (readonly)
  
Returns true if the association is an embedded one. In this case always false.
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 121
def false end
Class Method Details
.eager_loader(association, docs) ⇒ Mongoid::Association::Referenced::BelongsTo::Eager
Get the Eager object for this type of association.
Instance Attribute Details
    #persistable?  ⇒ true | false  (readonly, private)
  
Are we able to persist this association?
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 96
def persistable? _target.persisted? && !_binding? && !_building? end
Instance Method Details
#binding ⇒ Binding (private)
Instantiate the binding associated with this association.
#normalize(replacement) ⇒ Document (private)
Normalize the value provided as a replacement for substitution.
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 84
def normalize(replacement) return replacement if replacement.is_a?(Document) _association.build(klass, replacement) end
#nullify
Removes the association between the base document and the target document by deleting the foreign key and the reference, orphaning the target document in the process.
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 39
def nullify unbind_one _target.save end
    #substitute(replacement)  ⇒ self | nil 
  
Substitutes the supplied target documents for the existing document in the association.
# File 'lib/mongoid/association/referenced/belongs_to/proxy.rb', line 53
def substitute(replacement) unbind_one return unless replacement self._target = normalize(replacement) bind_one self end