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?
-
#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.
141 142 143 144 |
# Arquivo 'lib/mongoid/changeable.rb', linha 141 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?
24 25 26 |
# Arquivo 'lib/mongoid/changeable.rb', linha 24 def mudou? Mudanças.values.algum? { |valid| valid } || criancas_alteradas? end |
#change_attributes ➤ Hash<string, Object>
Obtenha as alterações de atributo.
43 44 45 |
# Arquivo 'lib/mongoid/changeable.rb', linha 43 def change_attributes @changed_attributes ||= {} end |
#change ➤ Hash<string, Array<Object, Object> ] As alterações.
Obtenha todas as alterações do documento.
53 54 55 56 57 58 |
# Arquivo 'lib/mongoid/changeable.rb', linha 53 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?
33 34 35 |
# Arquivo 'lib/mongoid/changeable.rb', linha 33 def criancas_alteradas? _children.algum?(&:Alterado?) 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.
67 68 69 70 71 72 73 74 |
# Arquivo 'lib/mongoid/changeable.rb', linha 67 def move_changes @changes_before_last_save = @previous_changes @previous_changes = Mudanças @attributes_before_last_save = @previous_attributes @previous_attributes = attributes.dup reinício_atomic_updates! change_attributes.Limpar end |
#post_persist ➤ Objeto
Itens que precisam ser executados após a persistência de um documento .
80 81 82 83 84 |
# Arquivo 'lib/mongoid/changeable.rb', linha 80 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.
92 93 94 |
# Arquivo 'lib/mongoid/changeable.rb', linha 92 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.
103 104 105 |
# Arquivo 'lib/mongoid/changeable.rb', linha 103 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.
152 153 154 155 |
# Arquivo 'lib/mongoid/changeable.rb', linha 152 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.
167 168 169 170 171 172 173 174 175 176 |
# Arquivo 'lib/mongoid/changeable.rb', linha 167 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 .
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# Arquivo 'lib/mongoid/changeable.rb', linha 116 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.
190 191 192 |
# Arquivo 'lib/mongoid/changeable.rb', linha 190 def will_save_change_to_attribute?(atr, **kwargs) atributo_changed?(atr, **kwargs) end |