2013-01-10 35 views
0

我有一个使用rails系统填充的数据库。我正在尝试返回并从其中一个表中删除一个id列表。我正在使用以下命令删除单个条目。使用ruby控制台删除多个数据库条目

Item.find(1).destroy 

我希望能够用一个命令删除一系列ID。 (即1,6,5,8,12,14)

Item.find(1,6,5,8,12,14).destroy 

我知道这不工作,但多数民众赞成在想什么,我做的想法。我对ruby相当陌生,只是试图确定最简单的方法。

+1

你只是需要DELET e记录(在这种情况下,delete_all将是最好的),或销毁依赖关联并调用回调(destroy_all)? –

+0

这是我放入数据库控制台的时间之一,并发出'从(1,6,5,8,12,14);'中的id删除项目。了解ActiveRecord在幕后做些什么以及如何执行基本的DBA任务很重要,也很好。 –

回答

3

无需手动获取项目时,Rails可以为你做到这一点:

Item.destroy_all(id: [1, 6, 5, 8, 12, 14]) 

,或者如@ShankyMunjal贴,如果你可以只使用IDS ,你可以去:

Item.destroy([1, 6, 5, 8, 12, 14]) 
+0

啊是的,的确有这样的方法。 –

1

这应该工作:

[1,6,5,8,12,14].each {|iid| Item.find(iid).destroy } 
+0

完美。我会给你一个镜头,谢谢。 – capcode01

0
Item.destroy([1,6,5,8,12,14])