def update_attributes!(attributes)
self.attributes = attributes
save!
end
обновить атрибут с помощью bang. Вызвать сохранение с bang.
def save!(*args, &block)
create_or_update(*args, &block) || raise(RecordNotSaved.new("Failed to save the record", self))
end
Внутри сохранения! RecordNotSave возникнет ошибка, если не удастся сохранить запись.
, чтобы вы могли настроить обработку ошибок из своего кода.
begin
hangout.update_attributes!(priority: current_user.priority)
rescue RecordNotSaved => e
#do the exception handling here
end