请参阅我的控制器中的以下代码
def create
@wad = current_user.wads.build(wad_params)
if @wad.save
current_user.points == current_user.points + 5
redirect_to @wad
else
flash[:error] = 'Error try again'
render 'new'
end
end
我的目标是当用户创造一团时他们得到5分。我将点列迁移到用户表,并且能够通过控制台更新点。
我根本没有得到任何错误,像往常一样创建了wad,并且页面重定向正确但是在用户表中没有更新点值。任何想法可能是什么问题?
答案 0 :(得分:3)
这里有几点意见:
首先,由于您未保存任何一条记录,因此暂时不会更改user
。
此外,您还需要使用一个=
来分配用户points
或方法,如下例所示。以下代码将克服这一点:
def create
@wad = current_user.wads.build(wad_params)
if @wad.save
current_user.update_attributes(points: current_user.points + 5) # update_attributes assigns the attributes and saves
redirect_to @wad
else
flash[:error] = 'Error try again'
render 'new'
end
end