Módulo: Mongoid::Association

Ampliado por:
ActiveSupport::Concern
Incluye:
Accesores, desarrolladores, Dependiendo, Incrustado::Cíclico, Macros, Referenciado::AutoGuardar, Referenciado::ContadorCaché, Referenciado::Sincronizable, Reflexiones
Incluido en:
Compuesto
Definido en:
lib/mongoid/association.rb,
lib/mongoid/association/one.rb,
lib/mongoid/association/many.rb,
lib/mongoid/association/eager.rb,
lib/mongoid/association/proxy.rb,
lib/mongoid/association/macros.rb,
lib/mongoid/association/nested.rb,
lib/mongoid/association/options.rb,
lib/mongoid/association/bindable.rb,
lib/mongoid/association/desarrolladores.rb,
lib/mongoid/association/accessors.rb,
lib/mongoid/association/depending.rb,
lib/mongoid/association/relatable.rb,
lib/mongoid/association/nested/one.rb,
lib/mongoid/association/marshalable.rb,
lib/mongoid/association/nested/many.rb,
lib/mongoid/association/reflections.rb,
lib/mongoid/association/constrainable.rb,
lib/mongoid/association/eager_loadable.rb,
lib/mongoid/association/embedded/eager.rb,
lib/mongoid/association/embedded/cyclic.rb,
lib/mongoid/association/embedded/batchable.rb,
lib/mongoid/association/referenced/has_one.rb,
lib/mongoid/association/embedded/embeds_one.rb,
lib/mongoid/association/referenced/has_many.rb,
lib/mongoid/association/referenced/syncable.rb,
lib/mongoid/association/embedded/embedded_in.rb,
lib/mongoid/association/embedded/embeds_many.rb,
lib/mongoid/association/referenced/auto_save.rb,
lib/mongoid/association/referenced/belongs_to.rb,
lib/mongoid/association/nested/nested_buildable.rb,
lib/mongoid/association/referenced/counter_cache.rb,
lib/mongoid/association/referenced/has_one/eager.rb,
lib/mongoid/association/referenced/has_one/proxy.rb,
lib/mongoid/association/embedded/embeds_one/proxy.rb,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/embedded/embedded_in/proxy.rb,
lib/mongoid/association/embedded/embeds_many/proxy.rb,
lib/mongoid/association/referenced/has_one/binding.rb,
lib/mongoid/association/embedded/embeds_one/binding.rb,
lib/mongoid/association/referenced/belongs_to/eager.rb,
lib/mongoid/association/referenced/belongs_to/proxy.rb,
lib/mongoid/association/referenced/has_many/binding.rb,
lib/mongoid/association/embedded/embedded_in/binding.rb,
lib/mongoid/association/embedded/embeds_many/binding.rb,
lib/mongoid/association/referenced/has_one/buildable.rb,
lib/mongoid/association/embedded/embeds_one/buildable.rb,
lib/mongoid/association/referenced/belongs_to/binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/embedded/embedded_in/buildable.rb,
lib/mongoid/association/embedded/embeds_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb,
lib/mongoid/association/referenced/belongs_to/buildable.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many.rb,
lib/mongoid/association/referenced/with_polymorphic_criteria.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

Overview

Módulo Mixin que agrega comportamiento de asociación a un document Mongoid. Agrega métodos como #embedded? que indican el estado de asociación relativo de un document.

Definido bajo Namespace

Modules: Accesores, Vinculable, desarrolladores, Restringible, Dependientes, Carga anticipada, Insertado, Macros, Ensambable, Anidado, Opciones, Referenciado, Reflexiones, Relacionable Clases: Anticipado, Muchos, Uno, Proxy

Resumen de constantes colapsar

MACRO_MAPPING =

Mapea las macros a sus clases de Asociación correspondientes.

Devuelve:

  • (encriptada)

    La asignación de macros a su clase de Asociación.

{
  embeds_one: Asociación::Embedded::EmbedsOne,
  incorpora_varios: Asociación::Embedded::EmbedsMany,
  embedded_in: Asociación::Embedded::EmbeddedIn,
  has_one: Asociación::Referenciado::HasOne,
  has_many: Asociación::Referenciado::HasMany,
  tiene_y_pertenece_a_muchos: Asociación::Referenciado::HasAndBelongsToMany,
  pertenece_a: Asociación::Referenciado::BelongsTo
}.freeze

Constantes incluidas de Dependiendo

Dependiendo::ESTRATEGIAS

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos de Reflections

#reflect_on_all_association, #reflect_on_association

Métodos incluidos de Macros

#asociaciones

Métodos incluidos de desarrolladores

define_builder!, define_creator!

Métodos incluidos en Dependiendo

#aplicar_destruir_dependencias!, definir_dependencia!, ¡validar!

Métodos incluidos de Accesores

#__build__, #create_relation, define_builder!, define_creator!, define_existence_check!, define_getter!, define_ids_getter!, define_ids_setter!, define_setter!, #reset_relation_criteria, #set_relation

Métodos incluidos de Referenciado::Sincronizable

#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys

Métodos incluidos de Referenciado::CounterCache

define_callbacks!, #reset_counters

Métodos incluidos de Referenced::AutoSave

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

Detalles de atributo de instancias

#_asociaciónObjeto

Devuelve el valor del atributo _asociación.



49
50
51
# Archivo 'lib/mongoid/association.rb', línea 49

def _association
  @_association
end

Detalles del método de instancia

#association_nameSímbolo

Obtén el nombre de la asociación para este document. Si no se definió ninguna asociación, se generará un error.

Ejemplos:

Obtén el nombre de la asociación.

document.association_name

Devuelve:

  • (Símbolo)

    El nombre de la asociación.

Aumenta:



96
97
98
99
100
# Archivo 'lib/mongoid/association.rb', línea 96

def association_name
  propagar Errors::NoMetadata.Nuevo(sí mismo.clase.Nombre) a menos que _association

  _association.Nombre
end

#¿integrado?true | false

Determinar si el propio documento está integrado en otro documento a través de los canales adecuados. (Si tiene un documento principal).

Ejemplos:

¿Se encuentra el documento incrustado?

address.embedded?

Devuelve:

  • (true | false)

    Verdadero si el documento tiene un documento principal.



63
64
65
# Archivo 'lib/mongoid/association.rb', línea 63

def ¿Incorporado?
  @embedded ||= (cíclico ? _parent.¿presente? : sí mismo.clase.¿Incorporado?)
end

#embedded_many?true | false

Determina si el documento forma parte de una asociación de tipo embeds_many.

Ejemplos:

¿El documento está en un embeds many?

address.embedded_many?

Devuelve:

  • (true | false)

    Verdadero si está incrustado en varios.



73
74
75
# Archivo 'lib/mongoid/association.rb', línea 73

def embedded_many?
  _association && _association.is_a?(Asociación::Embedded::EmbedsMany)
end

#embedded_one?true | false

Determine si el documento forma parte de una asociación embeds_one.

Ejemplos:

¿Está el documento en uno incrustado?

address.embedded_one?

Devuelve:

  • (true | false)

    Verdadero si está en un uno incrustado.



83
84
85
# Archivo 'lib/mongoid/association.rb', línea 83

def ¿uno_incrustado?
  _association && _association.is_a?(Asociación::Embedded::EmbedsOne)
end

#referenced_many?true | false

Determina si el documento forma parte de una asociación references_many.

Ejemplos:

¿Está el documento en un "references many"?

post.referenced_many?

Devuelve:

  • (true | false)

    Verdadero si está en una referencia múltiple.



108
109
110
# Archivo 'lib/mongoid/association.rb', línea 108

def referenced_many?
  _association && _association.is_a?(Asociación::Referenciado::HasMany)
end

#referenced_one?true | false

Determine si el documento forma parte de una asociación references_one.

Ejemplos:

¿Se encuentra el documento en un documento de referencias?

address.referenced_one?

Devuelve:

  • (true | false)

    Verdadero si se menciona en un archivo de referencias.



118
119
120
# Archivo 'lib/mongoid/association.rb', línea 118

def referenciado_uno?
  _association && _association.is_a?(Asociación::Referenciado::HasOne)
end

#reload_relationsHash

Método conveniente para iterar a través de las asociaciones cargadas y recargarlas.

Ejemplos:

Recarga las asociaciones.

document.reload_relations

Devuelve:

  • (encriptada)

    Los metadatos de la asociación.



129
130
131
132
133
134
135
# Archivo 'lib/mongoid/association.rb', línea 129

def recargar_relaciones
  relaciones.each_pair hacer |Nombre, _meta|
    Next a menos que instance_variable_defined?("@_#{name}")

    remove_instance_variable("@_#{name}") si _parent.nil? || instance_variable_get("@_#{name}") != _parent
  end
end