Rails: Update model attribute without invoking callbacks
To update multiple attributes without callbacks you can use update_all in your model as so:
self.class.update_all({name: value, name: value}, self.class.primary_key => id)
If you really want you can even try even a update_columns method and mixin this to your active record base class.
To update one attribute you can use update_column. In addition there is some specific methods that can found in the rails guides http://guides.rubyonrails.org/active_record_callbacks.html#skipping-callbacks
As a general answer, in Rails 4 this is a simple way to update attributes without triggering callbacks:
@user.update_column :credits, 5
If you need to update multiple attributes without triggering callbacks:
@user.update_columns credits: 5, bankrupt: false
There are other options here in the Rails Guides if you prefer, but I found this way to be the easiest.
Rails 3.1 introduced update_column
, which is the same as update_attribute
, but without triggering validations or callbacks:
http://apidock.com/rails/ActiveRecord/Persistence/update_column