我的用户控制器中有一个更新方法,我从Flex 4中的HTTPService调用。更新方法如下:
def updateName
@user = User.find_by_email(params[:email])
@user.name = params[:nameNew]
render :nothing => true
end
这是控制台输出:
处理UsersController#updateName (2010.05-05 14:12:49为127.0.0.1) [POST]
参数:{“action”=>“updateName”, “nameNew”=> “中奔”, “控制器”=> “中的用户”, “电子邮件”=> “中email@gmail.com”}
用户负载(0.6ms)SELECT * FROM “用户”WHERE(“用户”。“电子邮件”= 'email@gmail.com')限制1 完成时间20ms(查看:1,DB:1)| 200好的 [http://localhost/users/updateName]
但是当我检查我的数据库时,名称字段永远不会更新。我究竟做错了什么?谢谢你的阅读。
答案 0 :(得分:4)
您只修改了内存中的用户对象,即您没有将更改保存到数据库。你想要这样的东西:
def updateName
@user = User.find_by_email(params[:email])
@user.name = params[:nameNew]
@user.save
render :nothing => true
end
此外,您可能希望将@ user.save置于if条件中以检查模型是否已正确保存。
答案 1 :(得分:2)
更新字段后需要调用模型的更新方法
@user.update()