Módulo: Mongoid::Stateful

Incluido en:
Componible
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.

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles de los atributos de instancia

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

Establece 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)
  @destruido = valor
end

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

Establece el atributo flagged_for_destroy

Parámetros:

  • valor

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



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

def marcado_para_destruir=(valor)
  @marcado_para_destruir = 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 anteriormente_nuevo_registro=(valor)
  @anteriormente_nuevo_record = valor
end

Detalles del método de instancia

#destruido?verdadero | falso

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:

¿Se destruye el documento?

person.destroyed?

Devuelve:

  • (verdadero | falso)

    Verdadero si se destruye, falso si no.



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

def ¿destruido?
  @destruido ||= false
end

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

Devuelve si el documento se ha marcado para su eliminación, pero aún no se ha destruido. Se utiliza para extracciones atómicas de documentos secundarios.

Ejemplos:

¿El documento está marcado?

document.flagged_for_destroy?

Devuelve:

  • (verdadero | falso)

    Si el documento está marcado.



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

def ¿marcado_para_destruir?
  @marcado_para_destruir ||= false
end

#nuevo_registro=(nuevo_valor) ⇒ verdadero | falso

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

Parámetros:

  • nuevo_valor (verdadero | falso)

    El valor a establecer.

Devuelve:

  • (verdadero | falso)

    El valor establecido.



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

def nuevo_registro=(nuevo_valor)
  @nuevo_record ||= false
  Si @nuevo_record && !nuevo_valor
    @anteriormente_nuevo_record = true
  end
  @nuevo_record = nuevo_valor
end

#¿nuevo_registro?true | false

Devuelve "true" si el documento no se ha almacenado en la base de datos, o "false" si sí. Esto se determina mediante la variable @new_record y "NOT" si el objeto tiene un ID.

Ejemplos:

¿El documento es nuevo?

person.new_record?

Devuelve:

  • (verdadero | falso)

    Verdadero si es nuevo, falso si no lo es.



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

def ¿nuevo_registro?
  @nuevo_record ||= false
end

#¿persistió?verdadero | falso

Comprueba si el documento se ha guardado en la base de datos. Devuelve "false" si se ha destruido.

Ejemplos:

¿El documento está persistido?

person.persisted?

Devuelve:

  • (verdadero | falso)

    Verdadero si persiste, falso si no.



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

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

#¿anteriormente nuevo registro?verdadero | falso

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

Devuelve:

  • (verdadero | falso)

    Verdadero si se acaba de crear, falso si no.



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

def ¿anteriormente_nuevo_registro?
  @anteriormente_nuevo_record ||= false
end

#¿previamente_persistido?verdadero | falso

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

Devuelve:

  • (verdadero | falso)

    Verdadero si se persistió pero ahora se destruyó, falso en caso contrario.



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

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

#¿pushable?verdadero | falso

Determina si el documento puede ser enviado.

Ejemplos:

¿Esto se puede empujar?

person.pushable?

Devuelve:

  • (verdadero | falso)

    ¿El documento es nuevo y está incrustado?



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

def ¿Empujable?
  ¿nuevo_registro? &&
    ¿incrustado_muchos? &&
    _padre.¿persistió? &&
    !_padre.conjuntos atómicos retrasados[ruta atómica]
end

#¡solo lectura!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:

  • (verdadero | falso)

    verdadero si el documento fue marcado exitosamente como de solo lectura, falso en caso contrario.



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

def ¡sólo lectura!
  Si Mongoid.legado_de_solo_lectura
    Mongoid::ADVERTENCIAS.advertencia_legacy_solo_lectura
    false
  else
    @solo lectura = true
  end
end

#readonly?true | false

¿El documento es de sólo lectura?

Ejemplos:

¿El documento es de sólo lectura?

document.readonly?

Devuelve:

  • (verdadero | falso)

    Si el documento es de sólo lectura.



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

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

#configurable?verdadero | falso

Determinar si el documento se puede configurar.

Ejemplos:

¿Se puede establecer esto?

person.settable?

Devuelve:

  • (verdadero | falso)

    ¿Este documento es un nuevo documento incrustado?



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

def ¿configurable?
  ¿nuevo_registro? && ¿incrustado_uno? && _padre.¿persistió?
end

#¿actualizable?true | false

¿El documento es actualizable?

Ejemplos:

¿El documento es actualizable?

person.updateable?

Devuelve:

  • (verdadero | falso)

    Si el documento se modifica y persiste.



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

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