Ruby on rails 在ruby on rails控制台中删除记录时出错
我正在尝试使用控制台删除记录。我有一个“用户”模型。我在控制台中尝试了几种方法:Ruby on rails 在ruby on rails控制台中删除记录时出错,ruby-on-rails,console,record,Ruby On Rails,Console,Record,我正在尝试使用控制台删除记录。我有一个“用户”模型。我在控制台中尝试了几种方法: a = User.where(:id => '18') a.destroy a.delete User.where(:id => '18').destroy User.where(:id => '18').delete 使用所有这些方法,我得到了相同的错误:“参数数量错误(0代表1)” 有人知道我做错了什么吗 谢谢 试试看: a = User.find(18) a.destroy 当我们使用
a = User.where(:id => '18')
a.destroy
a.delete
User.where(:id => '18').destroy
User.where(:id => '18').delete
使用所有这些方法,我得到了相同的错误:“参数数量错误(0代表1)”
有人知道我做错了什么吗
谢谢 试试看:
a = User.find(18)
a.destroy
当我们使用where
时,结果将是ActiveRecord::Relation
,这意味着多个记录,您不能直接调用destroy
。您需要通过迭代结果来调用destroy
users = User.where(:id => 18)
users.each do |user|
user.destroy
end
我可以在这里添加一些东西,您的代码的问题是,您正在传递字符串,而它需要一个整数“Number” 您的代码应如下所示:
a = User.where(:id => 18).first
a.destroy
在不使用第一个数组的情况下,将返回对象的第一个数组,并且您不能直接对其使用destroy方法,如果您不想首先添加,那么您的代码应该如下所示:
a = User.where(:id => 18)
a.each do |obj|
obj.destroy
end
拉杰的建议奏效了。谢谢