Módulo: Mongoid::Association::Referenced::AutoSave
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Mongoid::Asociación
- Definido en:
- lib/mongoid/asociación/referenciado/auto_save.rb
Overview
Módulo Mixin incluido en Mongoid::Document que agrega la capacidad de guardar automáticamente documentos del lado opuesto en asociaciones referenciadas al guardar el documento en cuestión.
Colapso delresumen del método de clase
-
.define_autosave!(asociación) ⇒ Clase
Define el método de guardado automático en la clase propietaria de una asociación para un objeto asociado.
Colapso del resumen del método de instancia
-
#__autosaving__ ⇒ Object
Iniciar el guardado automático asociado.
-
#¿guardado automáticamente? ⇒ verdadero | falso
Se utiliza para evitar bucles infinitos en los guardados automáticos asociados.
-
#¿cambiado_para_guardado_automático?(doc) ⇒ Booleano
Compruebe si hay cambios para el guardado automático.
Detalles del método de clase
.define_autosave!(asociación) ⇒ Clase
Define el método de guardado automático 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 yo.define_autosave!(asociación) asociación.clase inversa.grifo hacer |klass| método de guardado = :"guardar_automáticamente_documentos_para_#{asociación.Nombre}" klass.Enviar(:define_método, método de guardado) hacer Si before_callback_halted? yo.antes de que se detenga la devolución de llamada = false else __autosaving__ hacer Si assoc_value = ivar(asociación.Nombre) Arreglo(assoc_value).cada hacer |doc| pc = doc.¿contexto_de_persistencia? ? doc.contexto de persistencia : contexto de persistencia.para_niño(doc) doc.con(pc) hacer |d| d.guardar end end end end end end klass.after_persist_parent método de guardado, a menos que: :¿guardado automáticamente? end end |
Detalles del método de instancia
#__autosaving__ ⇒ Object
Iniciar 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(yo) rendimiento asegurar Compacto.exit_autosave(yo) 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?(yo) end |
#¿cambiado_para_guardado_automático?(doc) ⇒ Booleano
Comprueba 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_la_destrucción? end |