Use callbacks to determine model field changes?

What's the best way to examine what fields on a model are changing?
Would you use a callback to do that and how?

I guess the simplest example of this is how lighthouseapp documents
changes that a person makes to a ticket:

Milestone changed from “2.x” to “3.0”

State changed from “new” to “open”

How could I accomplish the same thing?

Take a look at ActiveRecord::Dirty

If you’re on Rails >= 2.1, you can track attribute changes:

You might also like Ryan Bates’ screencast on the topic:


Thanks for the help guys.

However, I've now hit the trap where I need session data in the
observer (who is changing the model)...