如何在没有id列的情况下销毁/删除Rails Active Record?

问题描述 投票:0回答:1

有没有办法在没有id列的表中销毁Rails Active Record条目?我知道有几种方法可以用ids销毁Active Records,如下所示:

User.destroy(1)
User.first.destroy

但是,如果没有id,我似乎无法找到这样做的方法。我检查了this link的建议但无济于事。理想情况下,我想到的是这样的:

User.where(name: "Dummy").destroy
# Returns this:
# ArgumentError (wrong number of arguments (given 0, expected 1))

我知道在没有id列的情况下在Rails中创建表通常是不鼓励的。虽然我想尽可能地删除这个特定的表格,但如果事实证明没有变通方法,我愿意列出。提前致谢。

ruby-on-rails activerecord destroy
1个回答
3
投票

User.where(name: 'Dummy').destroy不起作用的原因是User.where(name: 'Dummy')是一种关系,而不是单一的记录。例如,如果你想要使用name等于'Dummy'来销毁所有记录,你可以使用destroy_all

User.where(name: 'Dummy').destroy_all
© www.soinside.com 2019 - 2024. All rights reserved.