从控制器更新数据库字段时出现问题

时间:2010-05-24 04:17:33

标签: ruby-on-rails model-view-controller

我的用户控制器中有一个更新方法,我从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]

但是当我检查我的数据库时,名称字段永远不会更新。我究竟做错了什么?谢谢你的阅读。

2 个答案:

答案 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()