Antes dos trilhos 5.1
Anexar _was
ao seu atributo fornecerá o valor anterior.
Para trilhos 5.1+
Copiado da resposta de Lucas Andrade abaixo : https://stackoverflow.com/a/50973808/9359123
Anexar _was
está obsoleto no rails 5.1, agora você deve anexar_before_last_save
Algo como:
before_save object
do_something_with object.name_before_last_save
end
Retornará o valor do nome antes de seu último salvamento no banco de dados (funciona para salvar e criar)
A diferença entre _was
e de _before_last_save
acordo com a documentação:
_foi fonte do docs
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_save fonte de documentos
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
self.context
:self.context_was