7
我有一個2字段的表。單詞和時間戳。 然後,我有這個數組,其中包含一些單詞。 如何刪除表格中與數組中單詞匹配的所有記錄? 假設模型被稱爲「Word」。從表中刪除與數組中的數據匹配的記錄?
有關如何實現此目的的任何想法?也許循環遍歷數組並運行一些銷燬查詢。有人可以指示我嗎?謝謝
我有一個2字段的表。單詞和時間戳。 然後,我有這個數組,其中包含一些單詞。 如何刪除表格中與數組中單詞匹配的所有記錄? 假設模型被稱爲「Word」。從表中刪除與數組中的數據匹配的記錄?
有關如何實現此目的的任何想法?也許循環遍歷數組並運行一些銷燬查詢。有人可以指示我嗎?謝謝
如果你在模型上定義了回調,那麼sql將不會調用它們。在這種情況下推薦的方法是:
deletable_words = [ 'php', 'c++' ]
objs = Word.find(:all, :conditions => [ "words.word IN (?)", deletable_words])
objs.each { |o| o.destroy }
這樣做:
Word.delete_all(:words => words_array)
這將刪除定數組中匹配的話行,在一個SQL語句。
例如爲:
words = ["pop", "pop alternative", "r&b"]
Word.delete_all(:words => words)