Módulo: Mongoid::Campos::ClassMethods
- Definido en:
- lib/mongoid/fields.rb,
lib/mongoid/fields.rb
Resumen del método de instancia colapsar
-
#attribute_names ⇒ arreglo<String>
Devuelve un arreglo de nombres de los atributos disponibles en este objeto.
-
#cleanse_localized_field_names(name) ⇒ campo
Elimina las _translations del nombre de campo dado.
-
#database_field_name(name) ⇒ String
Obtener el nombre del campo proporcionado tal como está almacenado en la base de datos.
-
#extract_id_field(attributes) ⇒ objeto
privado
Extrae el campo id del hash de atributos especificado según los alias definidos en esta clase.
-
#campo(name, options = {}) ⇒ Field
Define todos los campos accesibles en el Documento. Para cada campo definido, se añadirá un método getter y setter como método de instancia al Documento.
-
#id_fields ⇒ arreglo<Symbol | String>
privado
Devuelve la lista de campos id para esta clase modelo, tanto como cadenas como símbolos.
-
#replace_field(name, type) ⇒ Serializable
Reemplazar un campo con un nuevo tipo.
-
#traverse_association_tree(clave) {|El, El, Si|... } ⇒ Campo
privado
Recorrer hacia abajo el árbol de asociaciones y buscar el campo para la clave proporcionada.
-
#utilizando_identificadores_de_objetos? ⇒ true | false
Método de conveniencia para determinar si estamos usando
BSON::ObjectIdscomo nuestra identificación.
Detalles del método de instancia
#attribute_names ⇒ arreglo<String>
Devuelve un arreglo de nombres de los atributos disponibles en este objeto.
Brinda los nombres de los campos de manera independiente del ORM. Rails v3.1+ usa este método para envolver automáticamente parámetros en 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
Remueve las traducciones del nombre de campo dado. Esto se realiza únicamente cuando no existe ya un nombre de campo o relación con el mismo nombre (es decir, con el sufijo _translations). Esta comprobación de un campo existente se realiza de forma recursiva
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 cleanse_localized_field_names(Nombre) Nombre = database_field_name(Nombre.to_s) klass = sí mismo [].tocar hacer |res| ar = Nombre.división('.') ar.cada_con_índice hacer |fn, i| llave = fn a menos que klass.campos.key?(fn) || klass.relaciones.key?(fn) si fn.¿Fin_con?(TRANSLATIONS_SFX) llave = fn.delete_suffix(TRANSLATIONS_SFX) else llave = fn end end res.push(llave) si klass.campos.key?(fn) res.push(ar.descartar(i+1).unirse('.')) a menos que i == ar.longitud - 1 break elsif klass.relaciones.key?(fn) klass = klass.relaciones[llave].klass end end end.unirse('.') end |
#database_field_name(name) ⇒ String
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 database_field_name(Nombre) Campos.database_field_name(Nombre, relaciones, campos_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 especificado 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 extract_id_field(atributos) id_fields.cada hacer |k| si v = atributos[k] return v end end nulo end |
#campo(nombre, opciones = {}) ⇒ Campo
Define todos los campos accesibles en el Documento. Para cada campo definido, se añadirá un método getter y setter 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, = {}) denominada = Nombre.to_s Validadores::Macro.validar(sí mismo, Nombre, ) added = add_field(denominada, ) descendants.cada hacer |subclase| subclase.add_field(denominada, ) end added end |
#id_fields ⇒ arreglo<Symbol | String>
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 id_fields IDS.dup.tocar hacer |id_fields| campos_alias.cada hacer |k, v| si v == '_id' id_fields << k.to_sym id_fields << 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) remove_defaults(Nombre) add_field(Nombre, campos[Nombre]..fusionar(tipo: tipo)) end |
#traverse_association_tree(clave) {|The, The, Whether| ...} ⇒ 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.
Recorrer hacia abajo el árbol de asociaciones y buscar el campo para la clave proporcionada.
533 534 535 |
# Archivo 'lib/mongoid/fields.rb', línea 533 def árbol de asociación transversal(llave, Ybloque) Campos.árbol de asociación transversal(llave, campos, relaciones, asociaciones_aliasadas, Ybloque) end |
#using_object_ids? ⇒ true | false
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_object_ids? campos["_identificación"].object_id_field? end |