Class: Mongoid::Association::One

Inherits:
Proxy
  • Object
show all
Defined in:
lib/mongoid/association/one.rb

Overview

This is the superclass for one to one relations and defines the common behavior or those proxies.

Constant Summary

Constants inherited from Proxy

Proxy::KEEPER_METHODS

Instance Attribute Summary

Attributes inherited from Proxy

#_association, #_base, #_target

Instance Method Summary collapse

Methods inherited from Proxy

apply_ordering, #extend_proxies, #initialize, #klass, #reset_unloaded, #substitutable

Methods included from Marshalable

#marshal_dump, #marshal_load

Constructor Details

This class inherits a constructor from Mongoid::Association::Proxy

Instance Method Details

#__evolve_object_id__Object

Evolve the proxy document into an object id.

Examples:

Evolve the proxy document.

proxy.__evolve_object_id__

Returns:

  • (Object)

    The proxy document’s id.



49
50
51
# File 'lib/mongoid/association/one.rb', line 49

def __evolve_object_id__
  _target._id
end

#cleartrue | false

Clear this relation - same as calling #delete on the document.

Examples:

Clear the relation.

relation.clear

Returns:

  • (true | false)

    If the delete succeeded.



17
18
19
# File 'lib/mongoid/association/one.rb', line 17

def clear
  _target.delete
end

#in_memoryArray<Document>

Get all the documents in the relation that are loaded into memory.

Examples:

Get the in memory documents.

relation.in_memory

Returns:

  • (Array<Document>)

    The documents in memory.



27
28
29
# File 'lib/mongoid/association/one.rb', line 27

def in_memory
  [ _target ]
end

#respond_to?(name, include_private = false) ⇒ true | false

Since method_missing is overridden we should override this as well.

Examples:

Does the proxy respond to the method?

relation.respond_to?(:name)

Parameters:

  • name (Symbol)

    The method name.

Returns:

  • (true | false)

    If the proxy responds to the method.



39
40
41
# File 'lib/mongoid/association/one.rb', line 39

def respond_to?(name, include_private = false)
  _target.respond_to?(name, include_private) || super
end