Módulo: Mongoid::Fields::ClassMethods
- Definido em:
- lib/mongoid/fields.rb,
lib/mongoid/fields.rb
Recolhimento do Resumo do método de instância
-
#variable_names ➤ Array<String>
Retorna uma array de nomes para os atributos disponíveis neste objeto.
-
#clean_localized_field_names(name) ⇒ Field
Remove _translations do nome de campo fornecido.
-
#database_field_name(name) ➤ string
Obtenha o nome do campo fornecido conforme armazenado no banco de banco de dados.
-
#extract_id_field(attributes) ➤ Objeto
privado
Extrai o campo ID do hash de atributos especificados com base nos aliases definidos nesta classe.
-
#campo(name, options = {}) ⇒ Field
Define todos os campos acessíveis no documento Para cada campo definido, um getter e setter serão adicionados como um método de instância ao documento.
-
#id_fields ➤ Array<Símbolo | string>
privado
Retorna a lista de campos ID para esta classe de modelo , como strings e símbolos.
-
#replace_field(nome, tipo) ➤ Serializável
Substituir um campo por um novo tipo.
-
#traverse_association_tree(key) {|O, O, Se| ... } ➤ Campo
privado
Percorra a árvore de associações e procure o campo para a chave fornecida.
-
#usando_object_ids? ➤ verdadeiro | false
Método de conveniência para determinar se estamos usando
BSON::ObjectIds
como nosso ID.
Detalhes do método de instância
#variable_names ➤ Array<String>
Retorna uma array de nomes para os atributos disponíveis neste objeto.
Fornece os nomes dos campo de forma independente de ORM. Rails v3.1+ usa esse método para envolver automaticamente os parâmetros em solicitações JSON.
448 449 450 |
# Arquivo 'lib/mongoid/fields.rb', linha 448 def Atributo_nomes Campos.keys end |
#clean_localized_field_names(name) ⇒ Field
Remove _translations do nome de campo fornecido. Isso é feito somente quando ainda não existe um nome de campo ou relação com o mesmo nome (ou seja, com o sufixo _translations). Esta verificação para um campo existente é feita recursivamente
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# Arquivo 'lib/mongoid/fields.rb', linha 95 def Clean_localized_field_names(name) name = database_field_name(name.to_s) classe = auto [].toque fazer |res| ar = name.dividir('.') ar.cada_com_index fazer |fn, i| chave = fn a menos que classe.Campos.chave?(fn) || classe.relações.chave?(fn) se três = fn.corresponder(/(.*)_translations\z/)&.capturas&.primeiro chave = três mais chave = fn end end res.push(chave) se classe.Campos.chave?(fn) res.push(ar.derrubar(i+1).juntar('.')) a menos que i == ar.Tamanho - 1 intervalo elsif classe.relações.chave?(fn) classe = classe.relações[chave].classe end end end.juntar('.') end |
#database_field_name(name) ➤ string
Obtenha o nome do campo fornecido conforme armazenado no banco de dados. Usado para determinar se o campo tem um nome alternativo ou não.
458 459 460 |
# Arquivo 'lib/mongoid/fields.rb', linha 458 def database_field_name(name) Campos.database_field_name(name, relações, aliased_fields, aliased_associations) end |
#extract_id_field(attributes) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Extrai o campo ID do hash de atributos especificados com base nos aliases definidos nesta classe.
78 79 80 81 82 83 84 85 |
# Arquivo 'lib/mongoid/fields.rb', linha 78 def extract_id_field(attributes) id_fields.cada fazer |k| se v = attributes[k] Método v end end nada end |
#campo(name, options = {}) ⇒ Field
Define todos os campos acessíveis no documento Para cada campo definido, um getter e setter serão adicionados como um método de instância ao documento.
477 478 479 480 481 482 483 484 485 |
# Arquivo 'lib/mongoid/fields.rb', linha 477 def Campo(name, = {}) nomeado = name.to_s Validadores::macro.validar(auto, name, ) adicionado = add_field(nomeado, ) descendants.cada fazer |subclasse| subclasse.add_field(nomeado, ) end adicionado end |
#id_fields ➤ Array<Símbolo | string>
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a lista de campos ID para esta classe de modelo , como strings e símbolos.
59 60 61 62 63 64 65 66 67 68 |
# Arquivo 'lib/mongoid/fields.rb', linha 59 def id_fields IDS.dup.toque fazer |id_fields| aliased_fields.cada fazer |k, v| se v == '_id' id_fields << k.to_sym id_fields << k end end end end |
#replace_field(nome, tipo) ➤ Serializável
Substituir um campo por um novo tipo.
496 497 498 499 |
# Arquivo 'lib/mongoid/fields.rb', linha 496 def replace_field(name, type) remove_defaults(name) add_field(name, Campos[name]..mesclar(tipo: type)) end |
#traverse_association_tree(key) {|O, O, Se| ... } ➤ Campo
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Percorra a árvore de associações e procure o campo para a chave fornecida.
527 528 529 |
# Arquivo 'lib/mongoid/fields.rb', linha 527 def traverse_association_tree(chave, &noum: bloco ; verb: bloquear) Campos.traverse_association_tree(chave, Campos, relações, aliased_associations, &noum: bloco ; verb: bloquear) end |
#usando_object_ids? ➤ verdadeiro | false
Método de conveniência para determinar se estamos usando BSON::ObjectIds
como nosso ID.
508 509 510 |
# Arquivo 'lib/mongoid/fields.rb', linha 508 def usando_object_ids? Campos["_id"].object_id_field? end |