ruby-on-rails Rails中未定义的方法update_attributes

oyt4ldly  于 2023-05-02  发布在  Ruby
关注(0)|答案(2)|浏览(148)

在Rails中,我想更新我的用户记录。我尝试使用这个命令:

@user=User.update_attributes(:name=> params[:name], :user=> params[:username], :pass=> params[:password])

但我总是犯错误:

undefined method `update_attributes'

更新我的用户的正确方法是什么?

dhxwm5r4

dhxwm5r41#

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指南。
您可以使用update_all方法更新所有记录。这是一个类方法,所以你可以调用它作为以下代码将更新所有用户记录的名称,并将其设置为“ABC”用户。update_all(name:“ABC”)

bvn4nwqk

bvn4nwqk2#

从Rails 6开始。1,update_attributes方法不工作了!update方法必须如下:

@user=User.update(:name=> params[:name], :user=> params[:username], :pass=> params[:password])

相关问题