Определить, является ли объект ActiveRecord новым

#ruby-on-rails #activerecord

#ruby-on-rails #activerecord

Вопрос:

Как я могу проверить, является ли ActiveRecord объект новым или уже сохранен?

Ответ №1:

Жизненный цикл объекта ActiveRecord:

1. новая запись

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

2. сохраняется

 item.save
item.persisted? #=> true
 

3. изменен

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

4. уничтожен

 item.destroy
item.destroyed? #=> true
 

Ответ №2:

#new_record? делает именно это:

 object.new_record?