The #changed method from the ActiveRecord::Dirty module should help
with this, it gives you an array of all the attributes (a.k.a columns)
you've changed on the model. To use it you have to update the
attributes and save in two separate steps.
Something like this:
@user = User.find(params[:id])
@user.attributes = params[:user]
@user.changes # Get the array of what was changed here
@user.save! # Then save the model after.
Take a look at the documentation for the methods provided in
ActiveRecord::Dirty to find out more http://api.rubyonrails.org/classes/ActiveRecord/Dirty.html