Visão geral
Associações no Mongoid permitem criar relacionamentos entre modelos. Quando você define uma associação, o Mongoid armazena metadados sobre essa associação. Você pode acessar os metadados chamando o método reflect_on_association em uma classe de modelo ou documento ou acessando diretamente os metadados em um documento específico. O exemplo a seguir mostra como acessar metadados utilizando o método reflect_on_association e por acesso direto:
# 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>]
Observação
Substitua <association_name> no exemplo anterior pelo nome da sua associação.
Atributos
Todas as associações contêm atributos que armazenam informações sobre o documento associado. As associações contêm os seguintes atributos:
_target: O documento ou documentos procurados_base: O documento no qual a associação está definida_association: Informações sobre a associação
O exemplo a seguir acessa cada um dos 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
A tabela seguinte mostra as informações armazenadas no atributo _association:
Método | Descrição |
|---|---|
| O nome do pai para um filho polimórfico. |
| Retorna se existe uma opção |
| Retorna se a associação é de construção automática. |
| Retorna se a associação está salvando automaticamente. |
| Retorna se a associação tem retornos de chamada em cascata do pai. |
| O nome da classe do documento com proxy. |
| Retorna se a associação é uma associação cíclica. |
| A opção dependente da associação. |
| Retorna |
| Retorna se a associação está incorporada em outro documento. |
| Retorna se a associação tem um |
| O nome do campo de chave estrangeira. |
| O nome do método de verificação suja do campo de chave estrangeira. |
| O nome do configurador do campo de chave estrangeira. |
| Retorna se a chave estrangeira é indexada automaticamente. |
| Os nomes de todas as associações inversas. |
| O nome de uma única associação inversa. |
| O nome da classe da associação no lado inverso. |
| O nome do campo de chave estrangeira no lado inverso. |
| A classe da associação no lado inverso. |
| Os metadados da associação no lado inverso. |
| O nome explicitamente definido da associação inversa. |
| O nome do método usado para definir a inversa. |
| O nome do campo do tipo polimórfico do inverso. |
| O nome do set do campo do tipo polimórfico do inverso. |
| O nome do campo no hash do atributo que é usado para obter a associação. |
| A classe dos documentos com proxy na associação. |
| O nome da associação. |
| Retorna |
| As opções de classificação personalizada na associação. |
| Retorna se a associação é polimórfica. |
| O nome do campo para definir a associação. |
| O nome do atributo no qual armazenar uma associação embarcada. |
| Retorna se a associação tem uma opção de toque. |
| O nome do campo para obter o tipo polimórfico. |
| O nome do campo para definir o tipo polimórfico. |
| Retorna se a associação tem uma validação associada. |