在rails上删除控制台ruby中的记录时出错

时间:2014-08-07 17:42:01

标签: 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)”

有谁知道我做错了什么?

THX!

2 个答案:

答案 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
相关问题