Overview
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.
Atributos
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 |
|---|---|
| El nombre del padre de un hijo polimórfico. |
| Devuelve si existe una opción |
| Devuelve si la asociación se está construyendo automáticamente. |
| Devuelve si la asociación se está guardando automáticamente. |
| Devuelve si la asociación tiene devoluciones de llamada en cascada desde el parent. |
| El nombre de la clase del documento proxied. |
| Devuelve si la asociación es una asociación cíclica. |
| Las dependencias de la asociación. |
| Devuelve |
| Devuelve si la asociación está incrustada en otro documento. |
| Indica si la asociación tiene un inverso |
| El nombre del campo de clave externa. |
| El nombre del método de comprobación de integridad del campo clave foránea. |
| El nombre del establecimiento del campo de clave externa. |
| Devuelve si la clave foránea está indexada automáticamente. |
| Los nombres de todas las asociaciones inversas. |
| El nombre de una única asociación inversa. |
| El nombre de la clase de la asociación en el lado inverso. |
| El nombre del campo de clave foránea en el lado inverso. |
| La clase de la asociación en el lado inverso. |
| Los metadatos de la asociación en el lado inverso. |
| El nombre definido explícitamente de la asociación inversa. |
| El nombre del método utilizado para establecer el inverso. |
| El nombre del campo de tipo polimórfico del inverso. |
| El nombre del configurador del campo de tipo polimórfico del inverso. |
| El nombre del campo en el hash del atributo que se usa para obtener la asociación. |
| La clase de los documentos delegados en la agrupación. |
| El nombre de la asociación. |
| Devuelve |
| Las opciones de ordenación personalizadas en la asociación. |
| Devuelve si la asociación es polimórfica. |
| El nombre del campo para establecer la asociación. |
| El nombre del atributo en el que se debe almacenar una asociación embebida. |
| Devuelve si la asociación tiene una opción de toque. |
| El nombre del campo para obtener el tipo polimórfico. |
| El nombre del campo para establecer el tipo polimórfico. |
| Devuelve si la asociación tiene una validación asociada. |