Перед рельсами 5.1
Добавление _was
к вашему атрибуту даст вам предыдущее значение.
Для рельсов 5.1+
Скопировано из ответа Лукаса Андраде ниже : https://stackoverflow.com/a/50973808/9359123
Добавление _was
в rails 5.1 устарело, теперь вы должны добавить_before_last_save
Что-то вроде:
before_save object
do_something_with object.name_before_last_save
end
Вернет значение имени перед вашим последним сохранением в базе данных (работает для сохранения и создания)
. Разница между _was
и _before_last_save
согласно документации:
_был источник из документов
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_save исходный код из документов
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
self.context
:self.context_was