Ruby-on-rails – Determine if ActiveRecord Object is New

activerecordruby-on-rails

How can I check if an ActiveRecord object is new or is already persisted?

Best Solution

An ActiveRecord object lifecycle:

1.new record

item = Item.new
item.new_record? #=> true

2.persisted

item.save
item.persisted? #=> true

3.changed

item.name = "other"
item.changed? #=> true

4.destroyed

item.destroy
item.destroyed? #=> true