Módulo: Mongoid::Stateful

Incluido en:
Compuesto
Definido en:
lib/mongoid/stateful.rb

Overview

Módulo mixin incluido en Mongoid::Document que añade comportamiento para obtener los diversos estados del ciclo de vida por los que puede transicionar un documento.

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles de los atributos de instancia

#destroyed=(valor) ⇒ Objeto (solo escritura)

Configura el atributo destruido

Parámetros:

  • Valor

    el valor en el que se establecerá el atributo destruido.



10
11
12
# Archivo 'lib/mongoid/stateful.rb', línea 10

def destruido=(Valor)
  @destroyed = Valor
end

#flagged_for_destroy=(valor) ⇒ Object (solo escritura)

Establece el atributo flagged_for_destroy

Parámetros:

  • Valor

    el valor para establecer el atributo flagged_for_destroy en.



10
11
12
# Archivo 'lib/mongoid/stateful.rb', línea 10

def flagged_for_destroy=(Valor)
  @flagged_for_destroy = Valor
end

#previous_new_record=(valor) ⇒ Objeto (solo escritura)

Establece el atributo previously_new_record

Parámetros:

  • Valor

    el valor en el que se establecerá el atributo previously_new_record.



10
11
12
# Archivo 'lib/mongoid/stateful.rb', línea 10

def registro_anterior=(Valor)
  @previously_new_record = Valor
end

Detalles del método de instancia

#¿destruido?true | false

Devuelve verdadero si el Document se destruyó correctamente y falso si no. Esto se determina mediante la variable @destroyed y no mediante la consulta de la base de datos.

Ejemplos:

¿El documento está destruido?

person.destroyed?

Devuelve:

  • (true | false)

    Verdadero si ha sido destruido, falso si no lo ha sido.



87
88
89
# Archivo 'lib/mongoid/stateful.rb', línea 87

def ¿destruido?
  @destroyed ||= false
end

#marcado_para_destruir?verdadero | falso También conocido como: marcado_para_destruir?, _destruir

Devuelve si el documento ha sido marcado para eliminación, pero aún no ha sido destruido. Se utiliza para la extracción atómica de documentos secundarios.

Ejemplos:

¿El documento está marcado?

document.flagged_for_destroy?

Devuelve:

  • (true | false)

    Si el documento está marcado.



73
74
75
# Archivo 'lib/mongoid/stateful.rb', línea 73

def flagged_for_destroy?
  @flagged_for_destroy ||= false
end

#new_record=({new_value}) ⇒ true | false

Establece si el documento se ha guardado en la base de datos.

Parámetros:

  • nuevo_valor (true | false)

    El valor a establecer.

Devuelve:

  • (true | false)

    El valor establecido.



17
18
19
20
21
22
23
# Archivo 'lib/mongoid/stateful.rb', línea 17

def nuevo_registro=(nuevo_valor)
  @nuevo_registro ||= false
  si @nuevo_registro && !nuevo_valor
    @previously_new_record = true
  end
  @nuevo_registro = nuevo_valor
end

#¿nuevo_registro?true | false

Devuelve true si el documento no se ha guardado en la base de datos y false si se ha guardado. Esto está determinado por la variable @new_record y NO por si el objeto tiene un id.

Ejemplos:

¿El documento es nuevo?

person.new_record?

Devuelve:

  • (true | false)

    Verdadero si es nuevo, falso en caso contrario.



33
34
35
# Archivo 'lib/mongoid/stateful.rb', línea 33

def nuevo_registro?
  @nuevo_registro ||= false
end

#persisted?true | false

Verifica si el documento se ha guardado en la base de datos. Devuelve falso si el documento ha sido destruido.

Ejemplos:

¿El documento está persistido?

person.persisted?

Devuelve:

  • (true | false)

    Verdadero si se conserva, falso si no.



53
54
55
# Archivo 'lib/mongoid/stateful.rb', línea 53

def ¿persistió?
  !nuevo_registro? && !¿destruido?
end

#previously_new_record?true | false

Devuelve true si este documento fue creado recientemente, es decir, antes del último guardado, el objeto no existía en la base de datos y new_record? habría devuelto verdadero.

Devuelve:

  • (true | false)

    Verdadero si acaba de ser creado, falso si no.



42
43
44
# Archivo 'lib/mongoid/stateful.rb', línea 42

def ¿anteriormente_nuevo_registro?
  @previously_new_record ||= false
end

#anteriormente_persistido?true | false

Comprueba si el documento se guardó previamente en la base de datos pero ahora se ha borrado.

Devuelve:

  • (true | false)

    Verdadero si se persistió pero ahora está destruido; de lo contrario, falso.



62
63
64
# Archivo 'lib/mongoid/stateful.rb', línea 62

def previously_persisted?
  !nuevo_registro? && ¿destruido?
end

#¿pushable?verdadero | falso

Determina si el documento puede ser enviado.

Ejemplos:

¿Esto se puede empujar?

person.pushable?

Devuelve:

  • (true | false)

    ¿El documento es nuevo y está integrado?



97
98
99
100
101
102
# Archivo 'lib/mongoid/stateful.rb', línea 97

def pushable?
  nuevo_registro? &&
    embedded_many? &&
    _parent.¿persistió? &&
    !_parent.delayed_atomic_sets[atomic_path]
end

#readonly!verdadero | falso

Marca el documento como de solo lectura. Generará un error de "ReadonlyDocument" si se intenta guardar, actualizar o destruir el documento.

Ejemplos:

Marcar el documento como de sólo lectura.

document.readonly!

Devuelve:

  • (true | false)

    Verdadero si el documento se marcó correctamente como solo lectura, falso en caso contrario.



112
113
114
115
116
117
118
119
# Archivo 'lib/mongoid/stateful.rb', línea 112

def readonly!
  si Mongoid.legacy_readonly
    Mongoid::ADVERTENCIAS.warn_legacy_readonly
    false
  else
    @solo lectura = true
  end
end

#readonly?true | false

¿El documento es de solo lectura?

Ejemplos:

¿El documento es de solo lectura?

document.readonly?

Devuelve:

  • (true | false)

    Si el documento es de solo lectura.



127
128
129
130
131
132
133
# Archivo 'lib/mongoid/stateful.rb', línea 127

def ¿solo lectura?
  si Mongoid.legacy_readonly
    __selected_fields != nulo
  else
    @solo lectura ||= false
  end
end

#configurable?verdadero | falso

Determine si el documento se puede establecer.

Ejemplos:

¿Se puede establecer esto?

person.settable?

Devuelve:

  • (true | false)

    ¿Este documento es uno nuevo con elementos incrustados?



141
142
143
# Archivo 'lib/mongoid/stateful.rb', línea 141

def ¿configurable?
  nuevo_registro? && ¿uno_incrustado? && _parent.¿persistió?
end

#¿actualizable?true | false

¿El documento es actualizable?

Ejemplos:

¿El documento es actualizable?

person.updateable?

Devuelve:

  • (true | false)

    Si se cambia y almacena el documento.



151
152
153
# Archivo 'lib/mongoid/stateful.rb', línea 151

def ¿actualizable?
  ¿persistió? && ¿cambió?
end