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.
[ :delete_all, :destroy, :nullify, :restrict_with_exceção, :restrict_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.
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 57 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 se associação.dependente && !classe.dependentes.incluir?(associação) classe.dependentes.push(associação) end end end |
.validar!(associação) 3 Objeto
Valida que a estratégia dependente de uma associação está dentro da enumeração permitida.
79 80 81 82 83 84 85 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 79 def auto.validar!(associação) a menos que Estratégias.incluir?(associação.dependente) aumentar Errors::InvalidDependentStrategy.Novo(associação, associação.dependente, Estratégias) end 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.
92 93 94 95 96 97 98 |
# Arquivo 'lib/mongoid/association/depending.rb', linha 92 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 |