我有一个 User 模型,它有一个: credit 属性。我想要一个简单的按钮,通过一个名为“ add”的路由将用户的信用值增加5,这样/users/3/add 将使用户 id = 3的信用值增加5。
def add
@user = User.find(params[:id])
@user.credits += 5
redirect_to root_path
end
这是我的控制器的相关部分。问题是,我不想调用@user。因为我有一个 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:
好吧,这是一个验证问题,使得“ EDIT”中的更改无法工作,但是我仍然希望能够回答最初的无回调更新问题!