我正在尝试使用控制台删除记录。我有一个“用户”的模型。我在控制台中尝试了几种方法:
a = User.where(:id => '18')
a.destroy
a.delete
User.where(:id => '18').destroy
User.where(:id => '18').delete
使用所有这些方法,我得到了同样的错误:“错误的参数数量(0表示1)”
有谁知道我做错了什么?
THX!
答案 0 :(得分:2)
尝试:
a = User.find(18)
a.destroy
当我们使用where
时,结果将为ActiveRecord::Relation
,表示多条记录,您无法直接调用destroy
。您需要通过迭代结果来调用destroy
。
users = User.where(:id => 18)
users.each do |user|
user.destroy
end
答案 1 :(得分:2)
我可以在这里添加一些东西,你的代码传递字符串的问题,而它需要一个整数'Number'
您的代码应如下所示:
a = User.where(:id => 18).first
a.destroy
不使用第一个对象数组将被返回,你不能直接使用destroy方法,如果你不想先添加,那么你的代码应该是这样的:
a = User.where(:id => 18)
a.each do |obj|
obj.destroy
end