Вы можете использовать new_record?
, чтобы увидеть, есть ли у вас новый объект, и changed?
, чтобы увидеть, изменилось ли что-либо:
before_save :pancakes
def pancakes
if new_record?
# Not in the database yet.
elsif changed?
# Already exists but it has unsaved changes.
end
end