2013-01-10 44 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])