在 Rails 中,我想更新我的用户记录。我正在尝试使用这个命令:
@user=User.update_attributes(:name=> params[:name], :user=> params[:username], :pass=> params[:password])
但我总是得到错误:
undefined method `update_attributes'
更新我的用户的正确方法是什么?
update_attributes
是实例方法而不是类方法,因此首先需要在 User
类的实例上调用它。
获取要更新的用户: 例如假设你想更新一个 id 为 1
的用户 @user = User.find_by(id: 1)
now if you want to update the user's name and password, you can do
或者
@user.update(name: "ABC", pass: "12345678")
或
@user.update_attributes(name: "ABC", pass: "12345678")
在你的情况下相应地使用它。
有关更多参考,您可以参考Ruby on Rails Guides.
您可以使用
update_all
方法更新所有记录。
这是一个类方法,因此您可以将其称为
以下代码将更新所有用户记录的名称并将其设置为“ABC”
User.update_all(name: "ABC")
似乎从 Rails 6.1 开始,“update_attributes”方法不再起作用了! 您必须像这样使用“update”方法:
@user=User.update(:name=> params[:name], :user=> params[:username], :pass=> params[:password])