Updating an attribute in db

update_attribute() calls save(), but remember that save() can return false on failure.

Test the return value of prog.update_attribute(:salary, 1000). You'll probably find that it's false, which means the save() failed.

Then you can start looking for _why_ it failed. However, this is a good lesson. _Always_ test for save failure in actions that call it.