Determine if ActiveRecord Object is New

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


Solution 1:

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

Solution 2:

#new_record? does just that:

object.new_record?