Touch
updated_atby default with calls toupdate_allandupdate_column(s)
Add this gem to the project Gemfile.
gem "active_record-updated_at"The default ActiveRecord behavior does not touch updated_at when the following are called:
ActiveRecord::Base#update_columnActiveRecord::Base#update_columnsActiveRecord::Relation#update_all
We rarely ever have a case to modify data WITHOUT touching updated_at so this gem enables the touching behavior by default. For those rare occasions that we don't want the touching we can wrap these calls in a disable block explicitly:
ActiveRecord::UpdatedAt.disable { User.update_all(role: "member") }If updated_at is explicitly specified then the UPDATE query is not modified.
# This touches `updated_at` with `Time.current`
User.update_all(role: "member")
# This sets `updated_at` to `1.day.ago`
User.update_all(role: "member", updated_at: 1.day.ago)
# This sets `updated_at` to `NULL`
User.update_all(role: "member", updated_at: nil)
# This doesn't touch `updated_at`
ActiveRecord::UpdatedAt.disable { User.update_all(role: "member") }bundle exec rspec- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so we don't break it in a future version unintentionally.
- Commit, do not mess with the version or history.
- Open a pull request. Bonus points for topic branches.
MIT - Copyright © 2016 LendingHome