Módulo: Mongoid::Association

Ampliado por:
ActiveSupport::Preocupación
Incluye:
Accesores, Constructores, Dependientes, Incrustado::Cíclico, Macros, Referenciado::Guardado automático, Referenciado::ContadorCaché, Referenciado::Sincronizable, Reflexiones
Incluido en:
Componible
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/builders.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/asociación/referenciada/pertenece_a/buildable.rb, lib/mongoid/asociación/referenciada/tiene_y_pertenece_a_muchos.rb, lib/mongoid/asociación/referenciada/con_criterios_polimórficos.rb, lib/mongoid/asociación/referenciada/tiene_y_pertenece_a_muchos/eager.rb, lib/mongoid/asociación/referenciada/tiene_y_pertenece_a_muchos/proxy.rb, lib/mongoid/asociación/referenciada/tiene_y_pertenece_a_muchos/binding.rb, lib/mongoid/asociación/referenciada/tiene_y_pertenece_a_muchos/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 en el espacio de nombres

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:

  • (Hash)

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

{
    embeds_one: Asociación::Embedded::EmbedsOne,
    incrustaciones_muchas: Asociación::Embedded::Incrusta muchos,
    incrustado en: Asociación::Embedded::EmbeddedIn,
    tiene_uno: Asociación::Referenciado::Tiene uno,
    tiene_muchos: Asociación::Referenciado::Tiene muchos,
    tiene_y_pertenece_a_muchos: Asociación::Referenciado::Tiene y pertenece a muchos,
    pertenece_a: Asociación::Referenciado::Pertenece a,
}.freeze

Constantes incluidas de Dependencia

Dependiendo::ESTRATEGIAS

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos en Reflexiones

#reflexionar_sobre_toda_la_asociación, #reflexionar_sobre_la_asociación

Métodos incluidos en Macros

#asociaciones

Métodos incluidos de Dependiendo

#¡aplicar_destruir_dependencias!, ¡definir_dependencia!, ¡validar!

Métodos incluidos en Accessors

#__build__, #crear_relación, #restablecer_criterios_de_relación, #establecer_relación

Métodos incluidos en Referenced::Syncable

#_sincronizable?, #_sincronizado, #_sincronizado?, #eliminar_claves_inversas, #actualizar_claves_inversas

Métodos incluidos en Referenced::CounterCache

¡define_devoluciones_de_llamadas!, #reinicia_contadores

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 _asociación
  @_asociación
end

Detalles del método de instancia

#nombre_de_asociaciónSímbolo

Obtener 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.

Aumentos:



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

def association_name
  propagar Errors::NoMetadata.Nuevo(yo.clase.Nombre) a no ser que _asociación
  _asociación.Nombre
end

#¿incrustado?verdadero | falso

Determinar si el documento está incrustado en otro documento mediante los canales adecuados (si tiene un documento principal).

Ejemplos:

¿Está incrustado el documento?

address.embedded?

Devuelve:

  • (verdadero | falso)

    Verdadero si el documento tiene un documento padre.



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

def ¿incorporado?
  @incorporado ||= (cíclico ? _padre.¿presente? : yo.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:

  • (verdadero | falso)

    Verdadero si en un se incrustan muchos.



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

def ¿incrustado_muchos?
  _asociación && _asociación.is_a?(Asociación::Embedded::Incrusta muchos)
end

#embedded_one?true | false

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

Ejemplos:

¿El documento está en uno incrustado?

address.embedded_one?

Devuelve:

  • (verdadero | falso)

    Verdadero si en uno se incrusta uno.



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

def ¿incrustado_uno?
  _asociación && _asociación.is_a?(Asociación::Embedded::EmbedsOne)
end

#referenciado_muchos?verdadero | falso

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

Ejemplos:

¿El documento tiene muchas referencias?

post.referenced_many?

Devuelve:

  • (verdadero | falso)

    Cierto si en una referencia hay muchas.



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

def ¿referenciado_muchos?
  _asociación && _asociación.is_a?(Asociación::Referenciado::Tiene muchos)
end

#referenciado_uno?verdadero | falso

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

Ejemplos:

¿El documento está en una lista de referencias?

address.referenced_one?

Devuelve:

  • (verdadero | falso)

    Verdadero si se menciona en un archivo de referencias.



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

def ¿referenciado_uno?
  _asociación && _asociación.is_a?(Asociación::Referenciado::Tiene uno)
end

#recargar_relacionesHash

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

Ejemplos:

Recargar las asociaciones.

document.reload_relations

Devuelve:

  • (Hash)

    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 ¿variable_de_instancia_definida?("@_#{nombre}")
      Si _padre.nil? || obtención de variable de instancia("@_#{nombre}") != _padre
        eliminar_variable_de_instancia("@_#{nombre}")
      end
    end
  end
end