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.
454 455 456 |
# Arquivo 'lib/mongoid/fields.rb', linha 454 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
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 |
# Arquivo 'lib/mongoid/fields.rb', linha 100 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 fn.end_with?(Translations_SFX) chave = fn.delete_suffix(Translations_SFX) 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.
464 465 466 |
# Arquivo 'lib/mongoid/fields.rb', linha 464 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.
83 84 85 86 87 88 89 90 |
# Arquivo 'lib/mongoid/fields.rb', linha 83 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.
483 484 485 486 487 488 489 490 491 |
# Arquivo 'lib/mongoid/fields.rb', linha 483 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.
64 65 66 67 68 69 70 71 72 73 |
# Arquivo 'lib/mongoid/fields.rb', linha 64 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.
502 503 504 505 |
# Arquivo 'lib/mongoid/fields.rb', linha 502 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.
533 534 535 |
# Arquivo 'lib/mongoid/fields.rb', linha 533 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.
514 515 516 |
# Arquivo 'lib/mongoid/fields.rb', linha 514 def usando_object_ids? Campos["_id"].object_id_field? end |