Módulo: Mongoid::Association::Depending
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Associação
- Definido em:
- lib/mongoid/association/depending.rb
Visão geral
Este módulo define o comportamento para configurar exclusões em cascata e anula para associações e como delegar à estratégia apropriada.
Colapsode resumo constante
- STRATEGIES =
As estratégias dependentes válidas.
%i[ delete_all destruir anular restringir_com_exceção restringir_with_error ]
Recolhimento do Resumo do método de classe
-
.define_dependency!(associação) ➤ Classe
Tente adicionar as informações em cascata ao documento para saber como lidar com documentos associados em uma remoção.
-
.validar!(associação) 3 Objeto
Valida que a estratégia dependente de uma associação está dentro da enumeração permitida.
Recolhimento do Resumo do método de instância
-
#apply_destroy_dependencies! ➤ Objeto
Executar todas as exclusões, destruição ou anulação em cascata.
Detalhes do método de classe
.define_dependency!(associação) ➤ Classe
Tente adicionar as informações em cascata ao documento para saber como lidar com documentos associados em uma remoção.
55 56 57 58 59 60 61 62 63 64 65 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 55 def auto.define_dependency!(associação) validar!(associação) associação.inverse_class.toque fazer |classe| se classe.dependentes_dono != classe classe.dependentes = [] classe.dependentes_dono = classe end classe.dependentes.push(associação) se associação.dependente && !classe.dependentes.incluir?(associação) end end |
.validar!(associação) 3 Objeto
Valida que a estratégia dependente de uma associação está dentro da enumeração permitida.
75 76 77 78 79 80 81 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 75 def auto.validar!(associação) Método se Estratégias.incluir?(associação.dependente) aumentar Errors::InvalidDependentStrategy.Novo(associação, associação.dependente, Estratégias) end |
Detalhes do método de instância
#apply_destroy_dependencies! ➤ Objeto
Executar todas as exclusões, destruição ou anulação em cascata. Delegará à estratégia apropriada para executar a operação.
88 89 90 91 92 93 94 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 88 def apply_destroy_dependencies! auto.classe._all_dependen.cada fazer |associação| se dependente = associação.tentar(:dependen) enviar("_depende_#{dependente}!", associação) end end end |