Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Metadatos de la Asociación

Las asociaciones en Mongoid te permiten crear relaciones entre modelos. Cuando se define una asociación, Mongoid almacena metadatos sobre esa asociación. Puedes acceder a los metadatos llamando al método reflect_on_association en una clase de modelo o documento, o accediendo directamente a los metadatos en un documento específico. El siguiente ejemplo muestra cómo acceder a los metadatos usando el método reflect_on_association y mediante el acceso directo:

# Get the metadata for a named association from the class or document
Model.reflect_on_association(:<association_name>)
# Directly access metadata on a document
model.associations[:<association_name>]

Nota

Reemplace <association_name> en el ejemplo anterior con el nombre de su asociación.

Todas las asociaciones contienen atributos que almacenan información sobre el documento relacionado. Las asociaciones contienen los siguientes atributos:

  • _targetEl documento o documentos proxy

  • _base: El documento en el que se define la asociación

  • _association: Información sobre la asociación

El siguiente ejemplo accede a cada uno de los atributos anteriores:

class Band
include Mongoid::Document
embeds_many :songs
end
Band.songs = [ song ]
Band.songs._target # returns [ song ]
Band.songs._base # returns band
Band.songs._association # returns the association metadata

La siguiente tabla muestra la información almacenada en el atributo _association:

Método
Descripción

Association#as

El nombre del padre de un hijo polimórfico.

Association#as?

Devuelve si existe una opción as.

Association#autobuilding?

Devuelve si la asociación se está construyendo automáticamente.

Association#autosaving?

Devuelve si la asociación se está guardando automáticamente.

Association#cascading_callbacks?

Devuelve si la asociación tiene devoluciones de llamada en cascada desde el parent.

Association#class_name

El nombre de la clase del documento proxied.

Association#cyclic?

Devuelve si la asociación es una asociación cíclica.

Association#dependent

Las dependencias de la asociación.

Association#destructive?

Devuelve true si la asociación tiene un método de eliminación o destrucción dependiente.

Association#embedded?

Devuelve si la asociación está incrustada en otro documento.

Association#forced_nil_inverse?

Indica si la asociación tiene un inverso nil definido.

Association#foreign_key

El nombre del campo de clave externa.

Association#foreign_key_check

El nombre del método de comprobación de integridad del campo clave foránea.

Association#foreign_key_setter

El nombre del establecimiento del campo de clave externa.

Association#indexed?

Devuelve si la clave foránea está indexada automáticamente.

Association#inverses

Los nombres de todas las asociaciones inversas.

Association#inverse

El nombre de una única asociación inversa.

Association#inverse_class_name

El nombre de la clase de la asociación en el lado inverso.

Association#inverse_foreign_key

El nombre del campo de clave foránea en el lado inverso.

Association#inverse_klass

La clase de la asociación en el lado inverso.

Association#inverse_association

Los metadatos de la asociación en el lado inverso.

Association#inverse_of

El nombre definido explícitamente de la asociación inversa.

Association#inverse_setter

El nombre del método utilizado para establecer el inverso.

Association#inverse_type

El nombre del campo de tipo polimórfico del inverso.

Association#inverse_type_setter

El nombre del configurador del campo de tipo polimórfico del inverso.

Association#key

El nombre del campo en el hash del atributo que se usa para obtener la asociación.

Association#klass

La clase de los documentos delegados en la agrupación.

Association#name

El nombre de la asociación.

Association#options

Devuelve self, para compatibilidad API con ActiveRecord.

Association#order

Las opciones de ordenación personalizadas en la asociación.

Association#polymorphic?

Devuelve si la asociación es polimórfica.

Association#setter

El nombre del campo para establecer la asociación.

Association#store_as

El nombre del atributo en el que se debe almacenar una asociación embebida.

Association#touchable?

Devuelve si la asociación tiene una opción de toque.

Association#type

El nombre del campo para obtener el tipo polimórfico.

Association#type_setter

El nombre del campo para establecer el tipo polimórfico.

Association#validate?

Devuelve si la asociación tiene una validación asociada.

En esta página