Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Metadatos de la Asociación

Las asociaciones en Mongoid permiten crear relaciones entre modelos. Cuando defines una asociación, Mongoid almacena metadatos sobre esa asociación. Puedes acceder a los metadatos llamando a la reflect_on_association método en una clase de modelo o documento, o accediendo directamente a los metadatos de un documento específico. El siguiente ejemplo muestra cómo acceder a los metadatos utilizando el método reflect_on_association y mediante 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.

Volver

Personalizar comportamiento de asociación

En esta página