Rails: Update model attribute without invoking callbacks

后端 未结 10 1640
萌比男神i
萌比男神i 2021-02-04 23:15

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

10条回答
  •  长发绾君心
    2021-02-04 23:33

    You have a number of options, including changing which callback you use, e.g., after_create.

    You can update columns without triggering callbacks, see Skipping Callbacks in the AR guide. For example, update_column doesn't trigger callbacks. The previous link lists non-triggering functions.

    You could also use any of the Conditional Callback forms (or even an observer) for when the password is changed. See ActiveModel::Dirty, e.g., @user.password_changed?.

提交回复
热议问题