after_save -- stack level too deep

Hi all,

I'm running into a brick wall trying to figure out my problem here. I have a model that has a boolean property called "paid". I'd like to add the following to my model:

def after_save   self.amount == self.splits.sum(:amount) ? self.update_attribute (:paid, true) : self.update_attribute(:paid, false) end

The problem is, when I do this I get an error that my stack level is too deep. If I throw this in with one of the model's validators it works just fine, but that's not the right way to do this...

I don't see how I'm recursing here, so any help would be appreciated!

Thanks!

You should update by sql in after_save.

update_attribute saves the updated record, so after_save will be called again, hence the recursion. Colin