Módulo: Mongoid::Changeable
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Componible
- Definido en:
- lib/mongoid/cambiable.rb
Overview
Define el comportamiento para el seguimiento sucio.
Definido en el espacio de nombres
Modules: Métodos de clase Clases: Cualquier cosa
Colapso del resumen del método de instancia
-
#atributo_antes_del_último_guardado(attr) ⇒ Objeto
Devuelve el valor original de un atributo antes del último guardado.
-
#cambiado ⇒ Array<String>
Obtenga los atributos modificados para el documento.
-
#cambiado? ⇒ verdadero | falso
¿Ha cambiado el documento?
-
#atributos_cambiados ⇒ Hash<Cadena, Objeto>
Obtener los cambios de atributos.
-
#cambios ⇒ Hash<String, Array<Object, Object> ] Los cambios.
Obtenga todos los cambios del documento.
-
#niños_cambiados? ⇒ verdadero | falso
¿Han cambiado algunos documentos secundarios (documentos incrustados) de este documento?
-
#¡Los niños pueden haber cambiado! ⇒ Objeto
privada
Indica que los hijos de este documento pueden haber cambiado y deben verificarse cuando se valide el documento.
-
#mover_cambios ⇒ Objeto
Llame a este método después de guardar, para que los cambios se puedan realizar correctamente.
-
#post_persist ⇒ Objeto
Cosas que deben ejecutarse después de que se haya conservado un documento.
-
#previous_changes ⇒ Hash<String, Array<Object, Object> ] Los cambios anteriores.
Obtener los cambios anteriores en el documento.
-
#remove_change(nombre) ⇒ Object
Eliminar un cambio del hash de atributos sucios.
-
#saved_change_to_attribute(attr) ⇒ Array<Object> | nil
Devuelve el cambio en un atributo durante el último guardado.
-
#cambio_guardado_a_atributo?(attr, de: Utils::PLACEHOLDER, a: Utils::PLACEHOLDER) ⇒ verdadero | falso
Devuelve si este atributo cambió durante el último guardado.
-
#establecedores ⇒ Hash
Obtiene todos los valores nuevos para cada uno de los campos modificados, para pasarlos a un modificador $set de MongoDB.
-
#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false
Devuelve si este atributo cambiará la próxima vez que guardemos.
Detalles del método de instancia
#atributo_antes_del_último_guardado(attr) ⇒ Objeto
Devuelve el valor original de un atributo antes del último guardado.
Este método es útil después de las devoluciones de llamadas para obtener el valor original de
an attribute before the save that triggered the callbacks to run.
150 151 152 153 |
# Archivo 'lib/mongoid/changeable.rb', línea 150 def atributo_antes_del_último_guardado(attr) attr = nombre_del_campo_de_base_de_datos(attr) attributes_before_last_save[attr] end |
#cambiado ⇒ Array<String>
Obtenga los atributos modificados para el documento.
14 15 16 |
# Archivo 'lib/mongoid/changeable.rb', línea 14 def cambiado atributos cambiados.claves.Seleccione { |attr| cambio de atributo(attr) } end |
#cambiado? ⇒ verdadero | falso
¿Ha cambiado el documento?
32 33 34 |
# Archivo 'lib/mongoid/changeable.rb', línea 32 def ¿cambió? cambios.values.any? { |val| val } || ¿Los niños han cambiado? end |
#atributos_cambiados ⇒ Hash<Cadena, Objeto>
Obtener los cambios de atributos.
51 52 53 |
# Archivo 'lib/mongoid/changeable.rb', línea 51 def atributos cambiados @atributos_cambiados ||= {} end |
#cambios ⇒ Hash<String, Array<Object, Object> ] Los cambios.
Obtenga todos los cambios del documento.
61 62 63 64 65 66 |
# Archivo 'lib/mongoid/changeable.rb', línea 61 def cambios cambiado.cada_con_objeto({}) hacer |attr, cambios| cambio = cambio de atributo(attr) cambios[attr] = cambio Si cambio end.con_acceso_indiferente end |
#niños_cambiados? ⇒ verdadero | falso
Esto intencionalmente sólo considera a los niños y no a los descendientes.
¿Han cambiado algunos documentos secundarios (documentos incrustados) de este documento?
41 42 43 |
# Archivo 'lib/mongoid/changeable.rb', línea 41 def ¿Los niños han cambiado? @los_niños_pueden_haber_cambiado || _niños.any?(Y:¿cambió?) end |
#¡Los niños pueden haber cambiado! ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Indica que los hijos de este documento pueden haber cambiado y deben verificarse cuando se valide el documento.
22 23 24 |
# Archivo 'lib/mongoid/changeable.rb', línea 22 def ¡Los niños pueden haber cambiado! @los_niños_pueden_haber_cambiado = true end |
#mover_cambios ⇒ Objeto
Llame a este método después de guardar, para que los cambios se puedan realizar correctamente.
Esto desarmará la matriz de hijos memorizada, establecerá el indicador de nuevo registro en falso, establecerá el documento como validado y moverá los cambios sucios.
75 76 77 78 79 80 81 82 83 |
# Archivo 'lib/mongoid/changeable.rb', línea 75 def mover_cambios @cambios_antes_del_último_guardado = @cambios_anteriores @cambios_anteriores = cambios @atributos_antes_del_último_guardado = @atributos_anteriores @atributos_anteriores = atributos.dup @los_niños_pueden_haber_cambiado = false reset_atomic_updates! atributos cambiados.borrar end |
#post_persist ⇒ Objeto
Cosas que deben ejecutarse después de que se haya conservado un documento.
89 90 91 92 93 |
# Archivo 'lib/mongoid/changeable.rb', línea 89 def post_persist restablecer_descendientes_persistentes restablecer atributos antes de la conversión de tipo mover_cambios end |
#previous_changes ⇒ Hash<String, Array<Object, Object> ] Los cambios anteriores.
Obtener los cambios anteriores en el documento.
101 102 103 |
# Archivo 'lib/mongoid/changeable.rb', línea 101 def cambios_anteriores @cambios_anteriores ||= {} end |
#remove_change(name) ⇒ objeto
Eliminar un cambio del hash de atributos sucios. Usado por los actualizadores atómicos de un solo campo.
112 113 114 |
# Archivo 'lib/mongoid/changeable.rb', línea 112 def eliminar_cambio(Nombre) atributos cambiados.borrar(Nombre.a_s) end |
#saved_change_to_attribute(attr) ⇒ Array<Object> | nil
Devuelve el cambio en un atributo durante el último guardado.
161 162 163 164 |
# Archivo 'lib/mongoid/changeable.rb', línea 161 def saved_change_to_attribute(attr) attr = nombre_del_campo_de_base_de_datos(attr) cambios_anteriores[attr] end |
#saved_change_to_attribute?(attr, from: Utils::PLACEHOLDER, to: Utils::PLACEHOLDER) ⇒ true | false
Devuelve si este atributo cambió durante el último guardado.
Este método es útil después de las devoluciones de llamadas, para ver el cambio.
in an attribute during the save that triggered the callbacks to run.
176 177 178 179 180 181 182 183 184 185 |
# Archivo 'lib/mongoid/changeable.rb', línea 176 def saved_change_to_attribute?(attr, desde: Utils::MARCADOR DE POSICIÓN, a: Utils::MARCADOR DE POSICIÓN) cambios = saved_change_to_attribute(attr) return false a no ser que cambios.is_a?(Arreglo) return true Si Utils.placeholder?(de) && Utils.placeholder?(to) return cambios.primera == de Si Utils.placeholder?(to) return cambios.última == to Si Utils.placeholder?(de) cambios.primera == de && cambios.última == to end |
#establecedores ⇒ Hash
Obtiene todos los valores nuevos para cada uno de los campos modificados, para pasarlos a un modificador $set de MongoDB.
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# Archivo 'lib/mongoid/changeable.rb', línea 125 def setters mods = {} cambios.each_pair hacer |Nombre, cambios| siguiente a no ser que cambios antiguo, Nuevo = cambios Campo = campos[Nombre] clave = nombre_del_atributo_atómico(Nombre) Si Campo&.¿redimensionable? Campo.añadir cambios atómicos(yo, Nombre, clave, mods, Nuevo, antiguo) else mods[clave] = Nuevo a no ser que puestas atómicas.¿incluir?(clave) end end mods end |
#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false
Devuelve si este atributo cambiará la próxima vez que guardemos.
Este método es útil en las validaciones y antes de las funciones de retorno para determinar
if the next call to save will change a particular attribute.
199 200 201 |
# Archivo 'lib/mongoid/changeable.rb', línea 199 def ¿se guardará el cambio en el atributo?(attr, **kwargs) ¿atributo_cambiado?(attr, **kwargs) end |