Min läsning av http://apidock.com/rails/ActiveRecord/Dirty
är att du måste ringa ..._will_change!
före du ändrar attributet. Du bör kunna bekräfta detta genom att undersöka changes
under olika scenarier.
Uppdatering:Jag testade precis beteendet med ett strängattribut, och det sparar fortfarande den uppdaterade strängen även om ändringen gjordes före ..._will_change
kallas, så min tolkning kan vara avstängd.