Keep a DRY history of your ActiveRecord models' changes
Steve Richert, James O'Kelly, C. Jason Harrelson
MIT