I have a User model that has a :credits attribute. I want a simple button that will add 5 to the user\'s credits, through a route called \"add\" so that /users/3/add would ad
Maybe your other before_save hook should check if the user's password has actually changed before encrypting it again.
Rails 3.1 introduced update_column
, which is the same as update_attribute
, but without triggering validations or callbacks:
http://apidock.com/rails/ActiveRecord/Persistence/update_column
For mongoid, I ended up using http://mongoid.org/en/mongoid/docs/persistence.html Specifically, you can use:
person.set(name:"Robert Pulson")
and no callback will be issued. So cool.
I think you should use the method update_counters in this case. Use it like this in your controller action:
def add
User.update_counters params[:id], :credits => 5
redirect_to root_path
end