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 añade comportamiento de asociación a un documento Mongoid. Añade métodos tales como #embedded? que indican el estado relativo de asociación de un documento.

Definido bajo Namespace

Modules: Accesores, enlazables, constructores, restringibles, dependientes, cargablesconentusiasmo, incrustados, macros, ordenables, anidados, opciones, referenciados, reflexiones, clases relacionables: ansiosos, muchos, uno, proxy

Colapso delresumen constante

MACRO_MAPPING =

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

Devuelve:

  • (encriptada)

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

{
    embeds_one: Asociación::Embedded::EmbedsOne,
    incrustaciones_muchas: Asociación::Embedded::Incrusta muchos,
    embedded_in: Asociación::Embedded::EmbeddedIn,
    has_one: Asociación::Referenciado::HasOne,
    has_many: Asociación::Referenciado::Tiene muchos,
    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 en Dependiendo

#aplicar_destruir_dependencias!, definir_dependencia!, ¡validar!

Métodos incluidos en Accessors

#__compilar__, #create_relation, #reset_relation_criteria, #set_relation

Métodos incluidos de Referenciado::Sincronizable

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

Métodos incluidos en Referenced::CounterCache

define_callbacks!, #reset_counters

Métodos incluidos de Referenced::AutoSave

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

Detalles de los atributos de instancia

#_asociaciónObjeto

Devuelve el valor del atributo _association.



51
52
53
# Archivo 'lib/mongoid/association.rb', línea 51

def _association
  @_association
end

Detalles del método de instancia

#nombre_de_asociaciónSímbolo

Obtenga el nombre de la asociación para este documento. Si no se definió ninguna asociación

an error will be raised.

Ejemplos:

Obtener el nombre de la asociación.

document.association_name

Devuelve:

  • (Símbolo)

    El nombre de la asociación.

Aumenta:



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

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

#¿integrado?true | false

Determinar si el documento está incrustado en otro documento mediante 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.



65
66
67
# Archivo 'lib/mongoid/association.rb', línea 65

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

#embedded_many?verdadero | falso

Determinar si el documento es parte de una asociación embeds_many.

Ejemplos:

¿El documento está en un embeds many?

address.embedded_many?

Devuelve:

  • (true | false)

    Verdadero si está incrustado en varios.



75
76
77
# Archivo 'lib/mongoid/association.rb', línea 75

def embedded_many?
  _association && _association.is_a?(Asociación::Embedded::Incrusta muchos)
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 en uno se incrusta uno.



85
86
87
# Archivo 'lib/mongoid/association.rb', línea 85

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

#referenced_many?true | false

Determinar si el documento es 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.



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

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

#referenced_one?true | false

Determinar si el documento es 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.



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

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

#reload_relationsHash

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

Ejemplos:

Recargar las asociaciones.

document.reload_relations

Devuelve:

  • (encriptada)

    Los metadatos de la asociación.



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

def recargar_relaciones
  relaciones.each_pair hacer |Nombre, meta|
    si instance_variable_defined?("@_#{name}")
      si _parent.nil? || obtención de variable de instancia("@_#{name}") != _parent
        eliminar_variable_de_instancia("@_#{name}")
      end
    end
  end
end