Rails 5 / 6 / 7
| Method | Uses Default Accessor | Saves to Database | Runs Validations | Runs Callbacks | Updates updated_at/updated_on | Respects Readonly | 
|---|---|---|---|---|---|---|
| attribute= | Yes | No | n/a | n/a | n/a | n/a | 
| attributes= | Yes | No | n/a | n/a | n/a | n/a | 
| assign_attributes | Yes | No | n/a | n/a | n/a | n/a | 
| write_attribute | No | No | n/a | n/a | n/a | n/a | 
| []= | No | No | n/a | n/a | n/a | n/a | 
| update | Yes | Yes | Yes | Yes | Yes | Yes | 
| update_attribute | Yes | Yes | No | Yes | Yes | Yes | 
| update_attributes | Yes | Yes | Yes | Yes | Yes | Yes | 
| update_column | Yes | Yes | No | No | No | Yes | 
| update_columns | Yes | Yes | No | No | No | Yes | 
| User.update | Yes | Yes | Yes | Yes | Yes | Yes | 
| User.update_all | No | Yes | No | No | No | No | 
Note that update_attributes is no longer available on Rails 7 (it was only an alias to update before anyway).
Rails 4
| Method | Uses Default Accessor | Saved to Database | Validations | Callbacks | Touches updated_at | Readonly check | 
|---|---|---|---|---|---|---|
| attribute= | Yes | No | n/a | n/a | n/a | n/a | 
| write_attribute | No | No | n/a | n/a | n/a | n/a | 
| update_attribute | Yes | Yes | No | Yes | Yes | Yes | 
| attributes= | Yes | No | n/a | n/a | n/a | n/a | 
| update | Yes | Yes | Yes | Yes | Yes | Yes | 
| update_column | No | Yes | No | No | No | Yes | 
| update_columns | No | Yes | No | No | No | Yes | 
| User.update | Yes | Yes | Yes | Yes | Yes | Yes | 
| User.update_all | No | Yes | No | No | No | No | 
Rails 3
| Method | Uses Default Accessor | Mass Assignment Protection | Saved to Database | Validations | 
|---|---|---|---|---|
| attribute= | Yes | No | No | n/a | 
| write_attribute | No | No | No | n/a | 
| update_attribute | Yes | No | Yes | No | 
| attributes= | Yes | Yes* | No | n/a | 
| update_attributes | Yes | Yes | Yes | Yes | 
* Mass Assignment Protection for attributes= is overridable.
Further reading: update_attributes vs. update_attribute in ActiveRecord
Posted by Emanuel to makandra dev (2016-10-06 07:45)