Módulo: Mongoid::Association::Referenced::AutoSave
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Association
- Definido en:
- lib/mongoid/association/referenced/auto_save.rb
Overview
El módulo Mixin incluido en Mongoid::Document agrega la capacidad de guardar automáticamente documentos del lado opuesto en asociaciones referenciadas al guardar el documento sujeto.
Resumen del método de clase colapsar
-
.define_autosave!(asociación) ⇒ Clase
Defina el método de autoguardado en la clase propietaria de una asociación para un objeto asociado.
Resumen del método de instancia colapsar
-
#__autosaving__ ⇒ Object
Comience con el guardado automático asociado.
-
#autosaved? ⇒ true | false
Se utiliza para evitar bucles infinitos en los guardados automáticos asociados.
-
#changed_for_autosave?(doc) ⇒ booleano
Compruebe si hay cambios para el guardado automático.
Detalles del método de clase
.define_autosave!(asociación) ⇒ Clase
Defina el método de autoguardado en la clase propietaria de una asociación para un objeto asociado.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# Archivo 'lib/mongoid/association/referenced/auto_save.rb', línea 53 def sí mismo.define_autosave!(asociación) asociación.clase_inversa.tocar hacer |klass| save_method = :"autosave_documents_for_#{asociación.Nombre}" klass.enviar(:define_método, save_method) hacer si before_callback_halted? sí mismo.antes_de_detenerse_labllamada = false else __autosaving__ hacer si assoc_value = ivar(asociación.Nombre) Arreglo(assoc_value).cada hacer |doc| pc = doc.¿persistence_context? ? doc.persistence_context : persistence_context.for_child(doc) doc.con(pc) hacer |d| d.guardar end end end end end end klass.after_persist_parent save_method, a menos que: :autosaved? end end |
Detalles del método de instancia
#__autosaving__ ⇒ Object
Comience con el guardado automático asociado.
28 29 30 31 32 33 |
# Archivo 'lib/mongoid/association/referenced/auto_save.rb', línea 28 def __autosaving__ Compacto.begin_autosave(sí mismo) rendimiento asegurar Compacto.exit_autosave(sí mismo) end |
#¿guardado automáticamente? ⇒ verdadero | falso
Se utiliza para evitar bucles infinitos en los guardados automáticos asociados.
20 21 22 |
# Archivo 'lib/mongoid/association/referenced/auto_save.rb', línea 20 def ¿guardado automáticamente? Compacto.¿guardado automáticamente?(sí mismo) end |
#¿cambiado_para_guardado_automático?(doc) ⇒ Booleano
Verificar si hay cambios para el guardado automático
document.changed_for_autosave?
40 41 42 |
# Archivo 'lib/mongoid/association/referenced/auto_save.rb', línea 40 def changed_for_autosave?(doc) doc.nuevo_registro? || doc.¿cambió? || doc.marcado_para_destrucción? end |