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
-
#nombres_de_atributos ⇒ Matriz<String>
Devuelve una matriz de nombres para los atributos disponibles en este objeto.
-
#cleanse_localized_field_names(nombre) ⇒ Campo
Elimina las _translations del nombre de campo dado.
-
#database_field_name(nombre) ⇒ Cadena
Obtenga el nombre del campo proporcionado tal como está almacenado en la base de datos.
-
#extract_id_field(attributes) ⇒ objeto
privada
Extrae el campo id del hash de atributos especificados según los alias definidos en esta clase.
-
#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.
-
#id_fields ⇒ Matriz<Símbolo | Cadena>
privada
Devuelve la lista de campos id para esta clase modelo, tanto como cadenas como símbolos.
-
#replace_field(nombre, tipo) ⇒ Serializable
Reemplazar un campo con un nuevo tipo.
-
#traverse_association_tree(clave) {|El, El, Si|... } ⇒ Campo
privada
Recorra el árbol de asociación y busque el campo para la clave dada.
-
#using_object_ids? ⇒ verdadero | falso
Método de conveniencia para determinar si estamos usando
BSON::ObjectIdscomo nuestra identificación.
Detalles del método de instancia
#nombres_de_atributos ⇒ Matriz<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.
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.
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.
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.
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.
483 484 485 486 487 488 489 490 491 |
# Archivo 'lib/mongoid/fields.rb', línea 483 def Campo(Nombre, = {}) llamado = Nombre.a_s Validadores::Macro.validar(yo, Nombre, ) añadido = añadir_campo(llamado, ) descendants.cada hacer |subclase| subclase.añadir_campo(llamado, ) end añadido end |
#id_fields ⇒ Matriz<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.
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.
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]..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.
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.
514 515 516 |
# Archivo 'lib/mongoid/fields.rb', línea 514 def ¿usando_id_de_objeto? campos["_identificación"].¿campo_id_del_objeto? end |