custom save method on a model?

Hi everybody,

In my code I use a transaction to ensure that an update takes place on two tables at the same time:

begin   Transfer.transaction do     transfer.save!     user.save!   end rescue   #handle errors end

At the moment I do this in my controller, but since it is actually an action on my model, this feels wrong. I think I should create a new method on my model that saves itself and the other model using a transaction. So e.g.:

class Transfer < ActiveRecord::Base   def save_with_user_update     Transfer.transaction do       transfer.save!       user.save!     end     return true   rescue     #handle errors     return false   end end

Would this be considered good practice? Should I also mark save and save! as protected to enforce the use of my own method? Or to take it one step further: I could alias the regular save and save! and replace them by my own versions. Maybe that's a bit too much tinkering?

I'm a Rails newbie, so I'm interested to hear what more experienced developers think about this. Am I on the right track?

cheers, Kees-Jochem