Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby on rails控制台中删除记录时出错_Ruby On Rails_Console_Record - Fatal编程技术网

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

拉杰的建议奏效了。谢谢