Módulo: Mongoid::Campos::Métodos de clase

Definido en:

lib/mongoid/campos.rb, lib/mongoid/campos.rb

Colapso del resumen del método de instancia

Detalles del método de instancia

#nombres_de_atributosMatriz<String>

Devuelve una matriz de nombres para los atributos disponibles en este objeto.

Proporciona los nombres de campo de forma independiente de ORM. Rails v3.1+ utiliza este método para encapsular automáticamente los parámetros en las solicitudes JSON.

Ejemplos:

Obtener los nombres de los campos

Model.attribute_names

Devuelve:

  • (Matriz<String>)

    Los nombres de los campos



454
455
456
# Archivo 'lib/mongoid/fields.rb', línea 454

def nombres de atributos
  campos.claves
end

#cleanse_localized_field_names(nombre) ⇒ campo

Elimina las _translations del nombre de campo dado. Esto se realiza solo cuando no existe un nombre de campo o una relación con el mismo nombre (es decir, con el sufijo _translations). Esta comprobación de un campo existente se realiza recursivamente.

Parámetros:

  • Nombre (Cadena | Símbolo)

    El nombre del campo a limpiar.

Devuelve:

  • (Campo) -

    El nombre del campo sin _traducciones



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Archivo 'lib/mongoid/fields.rb', línea 100

def limpiar_nombres_de_campos_localizados(Nombre)
  Nombre = nombre_del_campo_de_base_de_datos(Nombre.a_s)

  klass = yo
  [].grifo hacer |res|
    ar = Nombre.división('.')
    ar.cada_con_índice hacer |función, i|
      clave = función
      a no ser que klass.campos.key?(función) || klass.relaciones.key?(función)
        Si función.¿Fin_con?(TRADUCCIONES_SFX)
          clave = función.delete_suffix(TRADUCCIONES_SFX)
        else
          clave = función
        end

      end
      res.Push(clave)

      Si klass.campos.key?(función)
        res.Push(ar.descartar(i+1).Join('.')) a no ser que i == ar.longitud - 1
        break
      elsif klass.relaciones.key?(función)
        klass = klass.relaciones[clave].klass
      end
    end
  end.Join('.')
end

#database_field_name(nombre) ⇒ Cadena

Obtiene el nombre del campo proporcionado tal como está almacenado en la base de datos. Se utiliza para determinar si el campo tiene alias o no.

Parámetros:

  • Nombre (Cadena | Símbolo)

    El nombre a obtener.

Devuelve:

  • (Cadena) -

    El nombre del campo tal como está almacenado en la base de datos.



464
465
466
# Archivo 'lib/mongoid/fields.rb', línea 464

def nombre_del_campo_de_base_de_datos(Nombre)
  Campos.nombre_del_campo_de_base_de_datos(Nombre, relaciones, campos con alias, asociaciones_aliasadas)
end

#extract_id_field(atributos) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Extrae el campo id del hash de atributos especificados según los alias definidos en esta clase.

Parámetros:

  • atributos (Hash)

    Los atributos a inspeccionar.

Devuelve:

  • (Objeto) -

    El valor del id.



83
84
85
86
87
88
89
90
# Archivo 'lib/mongoid/fields.rb', línea 83

def campo de identificación de extracción(atributos)
  campos de identificación.cada hacer |k|
    Si v = atributos[k]
      return v
    end
  end
  nulo
end

#campo(nombre, opciones = {}) ⇒ Campo

Define todos los campos a los que se puede acceder en el Documento. Para cada campo definido, se agregará un captador y un definidor como método de instancia al Documento.

Ejemplos:

Definir un campo.

field :score, type: Integer, default: 0

Parámetros:

  • Nombre ( Símbolo) -

    El nombre del campo.

  • opciones (Hash) (predeterminado: {})

    Las opciones que se pasan al campo.

Opciones Hash(opciones):

  • :tipo (Clase| Símbolo | Cadena)

    El tipo del campo.

  • :etiqueta (Cadena)

    La etiqueta del campo.

  • :por defecto (Objeto| Proc)

    El campo predeterminado.

Devuelve:

  • (Campo) -

    El campo generado



483
484
485
486
487
488
489
490
491
# Archivo 'lib/mongoid/fields.rb', línea 483

def Campo(Nombre, opciones = {})
  llamado = Nombre.a_s
  Validadores::Macro.validar(yo, Nombre, opciones)
  añadido = añadir_campo(llamado, opciones)
  descendants.cada hacer |subclase|
    subclase.añadir_campo(llamado, opciones)
  end
  añadido
end

#id_fieldsMatriz<Símbolo | Cadena>

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la lista de campos id para esta clase modelo, tanto como cadenas como símbolos.

Devuelve:

  • (Matriz<Símbolo | Cadena>)

    Lista de campos de identificación.



64
65
66
67
68
69
70
71
72
73
# Archivo 'lib/mongoid/fields.rb', línea 64

def campos de identificación
  Identificación.dup.grifo hacer |campos de identificación|
    campos con alias.cada hacer |k, v|
      Si v == '_id'
        campos de identificación << k.a_sym
        campos de identificación << k
      end
    end
  end
end

#replace_field(nombre, tipo) ⇒ Serializable

Reemplazar un campo con un nuevo tipo.

Ejemplos:

Reemplace el campo.

Model.replace_field("_id", String)

Parámetros:

  • Nombre (Cadena) -

    El nombre del campo.

  • tipo (Clase) -

    El nuevo tipo de campo.

Devuelve:



502
503
504
505
# Archivo 'lib/mongoid/fields.rb', línea 502

def reemplazar_campo(Nombre, tipo)
  eliminar_valores predeterminados(Nombre)
  añadir_campo(Nombre, campos[Nombre].opciones.unir(tipo: tipo))
end

#traverse_association_tree(clave) {|El, El, Si|... } ⇒ Campo

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Recorra el árbol de asociación y busque el campo para la clave dada.

Parámetros:

  • clave (Cadena) -

    La clave utilizada para buscar en el árbol de asociación.

  • &bloquear

    El bloque.

Parámetros de rendimiento:

  • El ( Símbolo) -

    método actual.

  • El (Símbolo| Cadena)

    campo o la relación.

  • Si (verdadero | falso)

    El segundo parámetro de rendimiento es un campo o no.

Devuelve:

  • (Campo) -

    El campo encontrado para la clave dada al final de la búsqueda. Devolverá nulo si el último resultado encontrado es una asociación o si no se encontró ningún campo para la clave dada.



533
534
535
# Archivo 'lib/mongoid/fields.rb', línea 533

def árbol de asociación transversal(clave, Ybloque)
  Campos.árbol de asociación transversal(clave, campos, relaciones, asociaciones_aliasadas, Ybloque)
end

#using_object_ids?verdadero | falso

Método de conveniencia para determinar si estamos usando BSON::ObjectIds como nuestra identificación.

Ejemplos:

¿Esta clase utiliza identificadores de objetos?

person.using_object_ids?

Devuelve:

  • (verdadero | falso)

    Si la clase usa BSON::ObjectIds para el id.



514
515
516
# Archivo 'lib/mongoid/fields.rb', línea 514

def ¿usando_id_de_objeto?
  campos["_identificación"].¿campo_id_del_objeto?
end