是否可以在没有id
列的情况下销毁表 中的Rails Active Record条目?
我知道有几种方法可以使用ids
销毁Active Record,例如:
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))
我知道通常不建议在Rails中创建没有id
列的表。虽然我想尽可能地删除此特定表,但如果事实证明没有任何解决方法,我还是愿意在此栏中提出。预先感谢。
答案 0 :(得分:3)
User.where(name: 'Dummy').destroy
不起作用的原因是User.where(name: 'Dummy')
是一个关系,而不是单个记录。例如,如果要销毁name
等于'Dummy'
的所有记录,则可以使用destroy_all
:
User.where(name: 'Dummy').destroy_all
答案 1 :(得分:0)
如果要删除列,可以使用
User.find_by_name(name: "dummy").destroy