Módulo: Mongoid::Changeable
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Componível
- Definido em:
- lib/mongoid/changeable.rb
Visão geral
Define o comportamento para rastreamento sujo.
Definido sob namespace
Módulos: Métodos de classe Classes: Qualquer coisa
Recolhimento do Resumo do método de instância
-
#attr_before_last_save(attr) ➤ Objeto
Retorna o valor original de um atributo antes da última gravação.
-
#change ⇒ Array<String>
Obtenha os atributos alterados do documento.
-
#alterado? ➤ verdadeiro | false
O documento foi alterado?
-
#change_attributes ➤ Hash<string, Object>
Obtenha as alterações de atributo.
-
#change ➤ Hash<string, Array<Object, Object> ] As alterações .
Obtenha todas as alterações do documento.
-
#criancas_changed? ➤ verdadeiro | false
Alguns filhos (documentos incorporados) deste documento foram alterados?
-
#criancas_may_key_changed! ➤ Objeto
privado
Indica que os filhos deste documento podem ter mudado e devem ser verificados quando o documento for validado.
-
#move_changes ➤ Objeto
Chame esse método após salvar, para que as alterações possam ser alteradas corretamente.
-
#post_persist ➤ Objeto
Itens que precisam ser executados após a persistência de um documento .
-
#Previous_changes ➤ Hash<string, Array<Object, Object> ] As alterações anteriores.
Obtenha as alterações anteriores no documento.
-
#remove_change(name) ➤ Objeto
Remova uma alteração do hash de atributos sujos.
-
#saved_change_to_attribute(attr) ⇒ Array<Object> | nil
Retorna a alteração de um atributo durante o último salvamento.
-
#save_change_to_attribute?(attr, de: Utils::PLACEHOLDER, para: Utils::PLACEHOLDER) ➤ true | false
Retorna se este atributo foi alterado durante a última gravação.
-
#setters ➤ Hash
Obtém todos os novos valores para cada um dos campos alterados, a serem passados para um modificador $set do MongoDB .
-
#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false
Retorna se este atributo será alterado na próxima vez que salvarmos.
Detalhes do método de instância
#attr_before_last_save(attr) ➤ Objeto
Retorna o valor original de um atributo antes da última gravação.
Este método é útil após as chamadas de resposta para obter o valor original de
an attribute before the save that triggered the callbacks to run.
150 151 152 153 |
# Arquivo 'lib/mongoid/changeable.rb', linha 150 def Atributo_before_last_save(atr) atr = database_field_name(atr) atributos_before_last_save[atr] end |
#change ⇒ Array<String>
Obtenha os atributos alterados do documento.
14 15 16 |
# Arquivo 'lib/mongoid/changeable.rb', linha 14 def alterado change_attributes.keys.selecione { |atr| attribute_change(atr) } end |
#alterado? ➤ verdadeiro | false
O documento mudou?
32 33 34 |
# Arquivo 'lib/mongoid/changeable.rb', linha 32 def mudou? Mudanças.values.algum? { |valid| valid } || criancas_alteradas? end |
#change_attributes ➤ Hash<string, Object>
Obtenha as alterações de atributo.
51 52 53 |
# Arquivo 'lib/mongoid/changeable.rb', linha 51 def change_attributes @changed_attributes ||= {} end |
#change ➤ Hash<string, Array<Object, Object> ] As alterações.
Obtenha todas as alterações do documento.
61 62 63 64 65 66 |
# Arquivo 'lib/mongoid/changeable.rb', linha 61 def Mudanças alterado.cada_com_objeto({}) fazer |atr, Mudanças| Mudar = attribute_change(atr) Mudanças[atr] = Mudar se Mudar end.with_indizer_access end |
#criancas_changed? ➤ verdadeiro | false
Isso intencionalmente considera apenas filhos e não descendentes.
Mais algum filho (documento incorporado) deste documento foi alterado?
41 42 43 |
# Arquivo 'lib/mongoid/changeable.rb', linha 41 def criancas_alteradas? @children_ may_Have_changed || _children.algum?(&:Alterado?) end |
#criancas_may_key_changed! ➤ 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.
Indica que os filhos deste documento podem ter mudado e devem ser verificados quando o documento for validado.
22 23 24 |
# Arquivo 'lib/mongoid/changeable.rb', linha 22 def criancas_ may_key_changed! @children_ may_Have_changed = true end |
#move_changes ➤ Objeto
Chame esse método após salvar, para que as alterações possam ser alteradas corretamente.
Isso desmarcará a array de filhos memoizados, definirá o novo sinalizador de registro como falso, definirá o documento como validado e moverá as alterações sujas.
75 76 77 78 79 80 81 82 83 |
# Arquivo 'lib/mongoid/changeable.rb', linha 75 def move_changes @changes_before_last_save = @previous_changes @previous_changes = Mudanças @attributes_before_last_save = @previous_attributes @previous_attributes = attributes.dup @children_ may_Have_changed = false reinício_atomic_updates! change_attributes.Limpar end |
#post_persist ➤ Objeto
Itens que precisam ser executados após a persistência de um documento .
89 90 91 92 93 |
# Arquivo 'lib/mongoid/changeable.rb', linha 89 def post_persist reinício_persisted_descendentes reinício_attributes_before_type_cast move_changes end |
#Previous_changes ➤ Hash<string, Array<Object, Object> ] As alterações anteriores.
Obtenha as alterações anteriores no documento.
101 102 103 |
# Arquivo 'lib/mongoid/changeable.rb', linha 101 def Previous_changes @previous_changes ||= {} end |
#remove_change(name) ➤ Objeto
Remova uma alteração do hash de atributos sujos. Usado pelos atualizadores atômicos de campo único.
112 113 114 |
# Arquivo 'lib/mongoid/changeable.rb', linha 112 def remove_change(name) change_attributes.excluir(name.to_s) end |
#saved_change_to_attribute(attr) ⇒ Array<Object> | nil
Retorna a alteração de um atributo durante o último salvamento.
161 162 163 164 |
# Arquivo 'lib/mongoid/changeable.rb', linha 161 def saved_change_to_attribute(atr) atr = database_field_name(atr) Previous_changes[atr] end |
#save_change_to_attribute?(attr, de: Utils::PLACEHOLDER, para: Utils::PLACEHOLDER) ➤ true | false
Retorna se este atributo foi alterado durante a última gravação.
Este método é útil após as chamadas de resposta, para ver a alteração
in an attribute during the save that triggered the callbacks to run.
176 177 178 179 180 181 182 183 184 185 |
# Arquivo 'lib/mongoid/changeable.rb', linha 176 def save_change_to_attribute?(atr, de: Utilidades::Espaço reservado, para: Utilidades::Espaço reservado) Mudanças = saved_change_to_attribute(atr) Método false a menos que Mudanças.is_a?(Array) Método true se Utilidades.placeholder?(from) && Utilidades.placeholder?(para) Método Mudanças.primeiro == from se Utilidades.placeholder?(para) Método Mudanças.último == para se Utilidades.placeholder?(from) Mudanças.primeiro == from && Mudanças.último == para end |
#setters ➤ Hash
Obtém todos os novos valores para cada um dos campos alterados, a serem passados para um modificador $set do MongoDB .
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# Arquivo 'lib/mongoid/changeable.rb', linha 125 def setters mods = {} Mudanças.cada_pair fazer |name, Mudanças| próximo a menos que Mudanças antigo, Novo = Mudanças Campo = Campos[name] chave = atomic_attribute_name(name) se Campo&.redimensionável? Campo.add_atomic_changes(auto, name, chave, mods, Novo, antigo) mais mods[chave] = Novo a menos que atomic_unsets.incluir?(chave) end end mods end |
#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false
Retorna se este atributo será alterado na próxima vez que salvarmos.
Este método é útil em validações e antes de chamadas de resposta para determinar
if the next call to save will change a particular attribute.
199 200 201 |
# Arquivo 'lib/mongoid/changeable.rb', linha 199 def will_save_change_to_attribute?(atr, **kwargs) atributo_changed?(atr, **kwargs) end |