我的用户 Controller 中有一个更新方法,我从 Flex 4 中的 HTTPService 调用该方法。更新方法如下:
def updateName
@user = User.find_by_email(params[:email])
@user.name = params[:nameNew]
render :nothing => true
end
这是控制台输出:
Processing UsersController#updateName (for 127.0.0.1 at 2010-05-24 14:12:49) [POST]
Parameters: {"action"=>"updateName", "nameNew"=>"ben", "controller"=>"users", "email"=>"[email protected]"}
User Load (0.6ms) SELECT * FROM "users" WHERE ("users"."email" = '[email protected]') LIMIT 1 Completed in 20ms (View: 1, DB: 1) | 200 OK [http://localhost/users/updateName]
但是当我检查数据库时,名称字段从未更新。我究竟做错了什么?感谢您的阅读。
最佳答案
您仅修改了内存中的用户对象,即您没有将更改保存到数据库。你想要这样的东西:
def updateName
@user = User.find_by_email(params[:email])
@user.name = params[:nameNew]
@user.save
render :nothing => true
end
此外,您可能希望将 @user.save 放入 if 条件中以检查模型是否已正确保存。
关于ruby-on-rails - 从我的 Controller 更新数据库字段时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894707/