Rails: How do I call `self.save` in my model and have it persist in the database?

Viewed 14000

I'm trying to keep model logic within my model, but I can't get it to perform modifications on itself and have them persist in the database.

In my controller:

@article.perform_some_calulcations!

In my model:

def perform_some_calculations!
  self.foo.gsub!(/regexp/, 'string')
  self.save
end

If I drop debugger statements into my method and after my call to it in the controller, @article.foo has the correct value. However, when I continue, it doesn't persist in the database and webrick doesn't report any UPDATE statements.

What's going wrong? I don't know if I've ever had to do this before, but surely it's possible right?

2 Answers
Related