Method: Mongoid::Fields::ForeignKey#evolve

Defined in:
lib/mongoid/fields/foreign_key.rb

#evolve(object) ⇒ Object

Evolve the object into an id compatible object.

Examples:

Evolve the object.

field.evolve(object)

Parameters:

  • object (Object)

    The object to evolve.

Returns:

  • (Object)

    The evolved object.



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/mongoid/fields/foreign_key.rb', line 64

def evolve(object)
  if object_id_field? || object.is_a?(Document)
    if association.polymorphic?
      association.convert_to_foreign_key(object)
    elsif object.is_a?(Document) && object.respond_to?(association.primary_key)
      primary_key_field.evolve(object.send(association.primary_key))
    else
      object.__evolve_object_id__
    end
  else
    related_id_field.evolve(object)
  end
end