Módulo: Mongoid::Association::Referenced::AutoSave
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Associação
- Definido em:
- lib/mongoid/association/referenced/auto_save.rb
Visão geral
Módulo Mixin incluído no Mongoid::Document que adiciona a capacidade de salvar automaticamente documentos do lado oposto em associações referenciadas ao salvar o documento do assunto.
Recolhimento do Resumo do método de classe
-
.define_autosave!(associação) ➤ Classe
Defina o método de salvamento automático na classe proprietário de uma associação para um objeto associado.
Recolhimento do Resumo do método de instância
-
#__auto salvando__ ➤ Objeto
Inicie o salvamento automático associado.
-
#salvo automaticamente? ➤ verdadeiro | false
Usado para evitar loops infinitos em salvamentos automáticos associados.
-
#change_for_autosave?(doc) ➤ Booleano
Verifique se há alterações para o salvamento automático.
Detalhes do método de classe
.define_autosave!(associação) ➤ Classe
Defina o método de salvamento automático na classe proprietário de uma associação para um objeto associado.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/mongoid/association/referenced/auto_save.rb', linha 53 def auto.define_autosave!(associação) associação.inverse_class.toque fazer |classe| save_method = :"autosave_documents_for_#{associação.name}" classe.enviar(:define_method, save_method) fazer se before_callback_handed? auto.before_callback_handed = false mais __auto save__ fazer se assoc_value = ivar(associação.name) Array(assoc_value).cada fazer |doc| PC = doc.persistence_context? ? doc.persistence_context : persistence_context.for_child(doc) doc.com(PC) fazer |d| d.Salvar end end end end end end classe.after_persist_parent save_method, a menos que: :autosagravado? end end |
Detalhes do método de instância
#__autosaving__ ⇒ Object
Inicie o salvamento automático associado.
28 29 30 31 32 33 |
# File 'lib/mongoid/association/referenced/auto_save.rb', linha 28 def __auto save__ Threaded.begin_autosave(auto) rendimento garantir Threaded.exit_autosave(auto) end |
#salvo automaticamente? ➤ verdadeiro | false
Usado para evitar loops infinitos em salvamentos automáticos associados.
20 21 22 |
# File 'lib/mongoid/association/referenced/auto_save.rb', linha 20 def salvo automaticamente? Threaded.salvo automaticamente?(auto) end |
#change_for_autosave?(doc) ➤ Booleano
Verificar se há alterações para o salvamento automático
document.changed_for_autosave?
40 41 42 |
# File 'lib/mongoid/association/referenced/auto_save.rb', linha 40 def change_for_autosave?(doc) doc.new_record? || doc.mudou? || doc.marcado_for_destruction? end |