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 (encriptada) (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 (string)

    La etiqueta del campo.



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

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

  # @por hacer: 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.
  return a menos que default_val.respond_to?(llamar)

  define_default_method(opciones[:klass])
end

Detalles de atributo de instancias

#default_valobjeto

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



13
14
15
# Archivo 'lib/mongoid/fields/standard.rb', línea 13

def default_val
  @default_val
end

#etiquetaObjeto

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



13
14
15
# Archivo 'lib/mongoid/fields/standard.rb', línea 13

def Etiqueta
  @label
end

#nombreobjeto

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



13
14
15
# Archivo 'lib/mongoid/fields/standard.rb', línea 13

def Nombre
  @name
end

#opcionesObjeto

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



13
14
15
# Archivo 'lib/mongoid/fields/standard.rb', línea 13

def opciones
  @options
end

Detalles del método de instancia

#add_atomic_changes(_document, _name, key, mods, new, _old) ⇒ Object

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

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

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.



28
29
30
# Archivo 'lib/mongoid/fields/standard.rb', línea 28

def add_atomic_changes(document, _name, llave, mods, Nuevo, _viejo)
  mods[llave] = Nuevo
end

#associationMetadata

Se obtiene los metadatos para el campo si es una clave foránea.

Ejemplos:

Obtener los metadatos.

field.

Devuelve:

  • (Metadata)

    Los metadatos de la asociación.



119
120
121
# Archivo 'lib/mongoid/fields/standard.rb', línea 119

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

#eval_default(doc) ⇒ Object

Evalúe el valor por defecto y devuélvalo. Se encargará de la serialización, las llamadas de procesos y la duplicación si es necesario.

Ejemplos:

Evalúe el valor por defecto.

field.eval_default(document)

Parámetros:

  • doc (documento)

    El documento al que pertenece el campo.

Devuelve:

  • (objeto)

    El valor serializado por defecto.



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

def eval_default(doc)
  si Campos = doc.__selected_fields
    evaluated_default(doc) si ¿incluido?(Campos)
  else
    evaluated_default(doc)
  end
end

#¿foreign_key?true | false

¿Es este campo una clave externa?

Ejemplos:

¿El campo es una clave foránea?

field.foreign_key?

Devuelve:

  • (true | false)

    Si el campo es una clave externa.



55
56
57
# Archivo 'lib/mongoid/fields/standard.rb', línea 55

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.



89
90
91
# Archivo 'lib/mongoid/fields/standard.rb', línea 89

def lazy?
  false
end

#localize_present?true | false

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

Ejemplos:

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

field.localize_present?

Devuelve:

  • (true | false)

    Si el campo lo aplica.



109
110
111
# Archivo 'lib/mongoid/fields/standard.rb', línea 109

def ¿localized_present?
  false
end

#localizado?true | false

¿Está localizado el campo o no?

Ejemplos:

¿El campo está localizado?

field.localized?

Devuelve:

  • (true | false)

    Si el campo está localizado.



99
100
101
# Archivo 'lib/mongoid/fields/standard.rb', línea 99

def ¿localizado?
  false
end

#object_id_field?verdadero | falso

¿Es el campo un BSON::ObjectId?

Ejemplos:

¿Es el campo un BSON::ObjectId?

field.object_id_field?

Devuelve:

  • (true | false)

    Si el campo es un BSON::ObjectId.



129
130
131
# Archivo 'lib/mongoid/fields/standard.rb', línea 129

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

#pre_processed?true | false

¿El campo preprocesa su valor por defecto?

Ejemplos:

¿El campo preprocesa el valor por defecto?

field.pre_processed?

Devuelve:

  • (true | false)

    Si el por defecto del campo está preprocesado.



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

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

#typeClass

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.



150
151
152
# Archivo 'lib/mongoid/fields/standard.rb', línea 150

def tipo
  @type ||= opciones[Tipo] || Objeto
end