Rails: обновление атрибута модели без вызова обратных вызовов

У меня есть модель User, которая имеет атрибут: credits. Мне нужна простая кнопка, которая добавит 5 к кредитам пользователя по маршруту, называемому «добавить», чтобы / users / 3 / add добавила 5 к кредитам пользователя id = 3.

def add
    @user = User.find(params[:id])
    @user.credits += 5
    redirect_to root_path
end

Это важная часть моего контроллера. Проблема в том, что я не хочу звонить @ user.save, потому что у меня есть обратный вызов before_save, который повторно шифрует пароль пользователя на основе текущего времени UTC. Я просто хочу добавить 5 к атрибуту и избежать обратного вызова, я никогда не думал, что такая простая вещь может быть такой сложной.

РЕДАКТИРОВАТЬ:

Я изменил обратный вызов на: before_create, вот мой новый код контроллера (соответствующая часть):

  def add
    @user = User.find(params[:id])
    @user.add_credits(5)
    @user.save
    flash[:success] = "Credits added!"
    redirect_to root_path
  end

и вот мой код в модели:

 def add_credits(num)
    self.credits = num
 end

РЕДАКТИРОВАТЬ 2:

Хорошо, это была проблема проверки, из-за которой изменения в «РЕДАКТИРОВАНИИ» не работали, но я все равно хотел бы получить ответ на первоначальный вопрос об обновлении без обратных вызовов!

Ответы на вопрос(9)

Ваш ответ на вопрос