In my code I use a transaction to ensure that an update takes place on
two tables at the same time:
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
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?