Перед рейками 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