When something unexpected happens, you should know about it immediately to make debugging and fixing the problem easier. Discusses ActiveRecord persistence APIs.
14.6.2012 – #update_attribute is deprecated in 3.2 branch 14.6.2012 – #update_attribute was removed from 4.0 branch 24.7.2012 – #update_column was deprecated in 4.0 branch 26.7.2012 – Rails 3.2.7 release 30.7.2012 – #update_column is undeprecated in 4.0 branch 1.8.2012 – #update_attribute is undeprecated in 3.2 branch 25.8.2012 – #update_attribute is put back in 4.0 branch 9.8.2012 – Rails 3.2.8 release
After all this •In Rails 4 the recommended way is to use #update with a hash •#update_attributes is aliased to #update •#update_attribute is still skipping validations
Vesa's laws of updating attributes 1. Use #update_attributes or use setters and #save/#save! 2. All other methods of updating attributes need an accompanying comment that explains why you didn't follow the first rule.