Clase: Mongoid::Campos::Estándar

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Definido en:
lib/mongoid/fields/standard.rb

Overview

Representa una definición de campo estándar (nombre, tipo, etc.) utilizada para imponer una estructura de esquema consistente a los documentos BSON que Mongoid persiste.

Subclases conocidas directas

Cifrado, clave externa, localizado

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(nombre, opciones = {}) ⇒ Estándar

Crea el nuevo campo con un nombre y opciones adicionales opcionales.

Ejemplos:

Crea el nuevo campo.

Field.new(:name, :type => String)

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Las opciones de campo.

Opciones Hash(opciones):

  • :tipo (Clase)

    La clase del campo.

  • :por defecto (Objeto)

    El valor predeterminado para el campo.

  • :etiqueta (Cadena)

    La etiqueta del campo.



71
72
73
74
75
76
77
78
79
80
81
82
83
# Archivo 'lib/mongoid/fields/standard.rb', línea 71

def inicializar(Nombre, opciones = {})
  @name = Nombre
  @opciones = opciones
  @label = opciones[:etiqueta]
  @default_val = opciones[:por defecto]

  # @todo: Durran, cambia la API en 4.0 para tomar la clase como parámetro.
  # Esto está aquí temporalmente para abordar #2529 sin cambiar el
  # firma del constructor.
  Si default_val.respond_to?(:llamar)
    definir_método_predeterminado(opciones[:klass])
  end
end

Detalles de los atributos de instancia

#valor_predeterminadoObjeto

Define el comportamiento de los campos definidos en el documento. Establece lectores para las variables de instancia.



15
16
17
# Archivo 'lib/mongoid/fields/standard.rb', línea 15

def default_val
  @default_val
end

#etiquetaObjeto

Define el comportamiento de los campos definidos en el documento. Establece lectores para las variables de instancia.



15
16
17
# Archivo 'lib/mongoid/fields/standard.rb', línea 15

def etiqueta
  @label
end

#nombreObjeto

Define el comportamiento de los campos definidos en el documento. Establece lectores para las variables de instancia.



15
16
17
# Archivo 'lib/mongoid/fields/standard.rb', línea 15

def Nombre
  @name
end

#opcionesObjeto

Define el comportamiento de los campos definidos en el documento. Establece lectores para las variables de instancia.



15
16
17
# Archivo 'lib/mongoid/fields/standard.rb', línea 15

def opciones
  @opciones
end

Detalles del método de instancia

#add_atomic_changes(documento, nombre, clave, mods, nuevo, antiguo) ⇒ Objeto

Agrega los cambios atómicos para este tipo de campo redimensionable.

campo.add_atomic_changes(doc, “clave”, {}, [], [])

Ejemplos:

Añade los cambios atómicos.

Parámetros:

  • Documento (Documento) -

    El documento a agregar.

  • Nombre (Cadena) -

    El nombre del campo.

  • clave (Cadena) -

    La ubicación atómica del campo.

  • mods (Hash)

    Las modificaciones actuales.

  • Nuevo (Matriz)

    Los nuevos elementos a añadir.

  • antiguo (Matriz)

    Los elementos antiguos se eliminan.



30
31
32
# Archivo 'lib/mongoid/fields/standard.rb', línea 30

def añadir cambios atómicos(Documento, Nombre, clave, mods, Nuevo, antiguo)
  mods[clave] = Nuevo
end

#associationMetadata

Obtenga los metadatos del campo si es una clave externa.

Ejemplos:

Obtener los metadatos.

field.

Devuelve:

  • (Metadata)

    Los metadatos de la asociación.



121
122
123
# Archivo 'lib/mongoid/fields/standard.rb', línea 121

def asociación
  @asociación ||= opciones[:asociación]
end

#eval_default(doc) ⇒ Objeto

Evalúa el valor predeterminado y lo devuelve. Gestionará la serialización, las llamadas a procedimientos y la duplicación si es necesario.

Ejemplos:

Evaluar el valor predeterminado.

field.eval_default(document)

Parámetros:

  • doc (Documento) -

    El documento al que pertenece el campo.

Devuelve:

  • (Objeto) -

    El valor predeterminado serializado.



43
44
45
46
47
48
49
# Archivo 'lib/mongoid/fields/standard.rb', línea 43

def eval_default(doc)
  Si campos = doc.__selected_fields
    evaluated_default(doc) Si ¿incluido?(campos)
  else
    evaluated_default(doc)
  end
end

#clave_externa?verdadero | falso

¿Es este campo una clave externa?

Ejemplos:

¿El campo es una clave externa?

field.foreign_key?

Devuelve:

  • (verdadero | falso)

    Si el campo es una clave externa.



57
58
59
# Archivo 'lib/mongoid/fields/standard.rb', línea 57

def ¿clave externa?
  false
end

#¿perezoso?verdadero | falso

¿Este campo realiza una evaluación predeterminada perezosa?

Ejemplos:

¿El campo está perezoso?

field.lazy?

Devuelve:

  • (verdadero | falso)

    Si el campo esta perezoso.



91
92
93
# Archivo 'lib/mongoid/fields/standard.rb', línea 91

def lazy?
  false
end

#localize_present?verdadero | falso

¿El campo localizado exige que los valores estén presentes?

Ejemplos:

¿El campo localizado exige que los valores estén presentes?

field.localize_present?

Devuelve:

  • (verdadero | falso)

    Si el campo impone presente.



111
112
113
# Archivo 'lib/mongoid/fields/standard.rb', línea 111

def ¿localizar_presente?
  false
end

#¿localizado?verdadero | falso

¿El campo está localizado o no?

Ejemplos:

¿El campo está localizado?

field.localized?

Devuelve:

  • (verdadero | falso)

    Si el campo está localizado.



101
102
103
# Archivo 'lib/mongoid/fields/standard.rb', línea 101

def ¿localizado?
  false
end

#object_id_field?verdadero | falso

¿El campo es un BSON::ObjectId?

Ejemplos:

¿El campo es un BSON::ObjectId?

field.object_id_field?

Devuelve:

  • (verdadero | falso)

    Si el campo es un BSON::ObjectId.



131
132
133
# Archivo 'lib/mongoid/fields/standard.rb', línea 131

def ¿campo_id_del_objeto?
  @object_id_field ||= (tipo == BSON::ObjectId)
end

#pre_procesado?verdadero | falso

¿El campo preprocesa su valor predeterminado?

Ejemplos:

¿El campo preprocesa el valor predeterminado?

field.pre_processed?

Devuelve:

  • (verdadero | falso)

    Si el valor predeterminado del campo está preprocesado.



141
142
143
144
# Archivo 'lib/mongoid/fields/standard.rb', línea 141

def ¿pre_procesado?
  @pre_procesado ||=
    (opciones[:pre_procesado] || (default_val && !default_val.is_a?(::Proc)))
end

#tipoClase

Obtenga el tipo de este campo, inferido a partir del nombre de la clase.

Ejemplos:

Obtener el tipo.

field.type

Devuelve:

  • (Clase) -

    El nombre de la clase.



152
153
154
# Archivo 'lib/mongoid/fields/standard.rb', línea 152

def tipo
  @tipo ||= opciones[:tipo] || Objeto
end