Yes, there is a way. From an ActiveModel :: Dirty document :
A newly created object does not change:
person = Person.find_by_name('Uncle Bob')
person.changed?
Change the name:
person.name = 'Bob'
person.changed?
person.name_changed?
person.name_was
person.name_change
person.name = 'Bill'
person.name_change
What attributes have changed?
person.name = 'Bob'
person.changed
person.changes
source
share