2010-03-21 48 views
7

我有一個2字段的表。單詞和時間戳。 然後,我有這個數組,其中包含一些單詞。 如何刪除表格中與數組中單詞匹配的所有記錄? 假設模型被稱爲「Word」。從表中刪除與數組中的數據匹配的記錄?

有關如何實現此目的的任何想法?也許循環遍歷數組並運行一些銷燬查詢。有人可以指示我嗎?謝謝

回答

4

如果你在模型上定義了回調,那麼sql將不會調用它們。在這種情況下推薦的方法是:

deletable_words = [ 'php', 'c++' ] 
objs = Word.find(:all, :conditions => [ "words.word IN (?)", deletable_words]) 
objs.each { |o| o.destroy } 
18

這樣做:

Word.delete_all(:words => words_array) 

這將刪除定數組中匹配的話行,在一個SQL語句。

例如爲:

words = ["pop", "pop alternative", "r&b"] 
Word.delete_all(:words => words) 
相關問題