Clase: Mongoid::Fields::Standard

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

Overview

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

Subclases conocidas directas

Cifrado, Clave foránea, Localizado

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del constructor

#initialize(name, options = {}) ⇒ 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) (por defecto: {})

    Las opciones del campo.

Opciones Hash (options):

  • Tipo (Clase)

    La clase del campo.

  • por defecto (Objeto)

    El valor por defecto 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
  @options = 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/la
  # firma del constructor.
  si default_val.respond_to?(llamar)
    define_default_method(opciones[:klass])
  end
end

Detalles de los atributos de instancia

#default_valobjeto

Define el comportamiento para los campos definidos en el documento. Establecer 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 para los campos definidos en el documento. Establecer 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 para los campos definidos en el documento. Establecer 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 para los campos definidos en el documento. Establecer lectores para las variables de instancia.



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

def opciones
  @options
end

Detalles del método de instancia

#add_atomic_changes(documento, name, key, mods, new, old) ⇒ objeto

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

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

Ejemplos:

Agrega los cambios atómicos.

Parámetros:

  • Documento (documento)

    El documento al que agregar.

  • Nombre (string)

    El nombre del campo.

  • llave (string)

    La ubicación atómica del campo.

  • mods (encriptada)

    Las modificaciones actuales.

  • Nuevo (arreglo)

    Los nuevos elementos a agregar.

  • antiguo (arreglo)

    Los elementos antiguos están siendo eliminados.



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

def add_atomic_changes(Documento, Nombre, llave, mods, Nuevo, antiguo)
  mods[llave] = 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 serializado por defecto.



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:

  • (true | false)

    Si el campo es una clave externa.



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

def foreign_key?
  false
end

#¿perezoso?verdadero | falso

¿Este campo realiza una evaluación perezosa por defecto?

Ejemplos:

¿El campo es perezoso?

field.lazy?

Devuelve:

  • (true | false)

    Si el campo es lazy.



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

def lazy?
  false
end

#localize_present?true | false

¿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:

  • (true | false)

    Si el campo lo aplica.



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

def ¿localized_present?
  false
end

#localizado?true | false

¿El campo está localizado o no?

Ejemplos:

¿El campo está localizado?

field.localized?

Devuelve:

  • (true | false)

    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:

  • (true | false)

    Si el campo es un BSON::ObjectId.



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

def object_id_field?
  @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:

  • (true | false)

    Si el valor por defecto del campo se procesa previamente.



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

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

#tipoClase

Obtenga el tipo de este campo: inferido 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