There are two ways to update an ActiveRecord
instance (not to mention
assign_attributes
,
update_attribute
,
etc.).
You can call
update
and
update!
.
If the updates would make the record invalid based on the model's validations,
then the update will fail.
You can tell if update
failed because it will return false
(instead of
true
).
unless book.update(book_params)
log_book_update_failed(id: book.id)
end
The update!
version will raise an ActiveRecord::ActiveRecordError
exception if the update fails.
begin
book.update!(book_params)
rescue ActiveRecord::ActiveRecordError
log_book_update_failed(id: book.id)
end