从该表中的数据匹配的数组中删除记录?
-
21-09-2019 - |
题
我有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语句。
E.g:
words = ["pop", "pop alternative", "r&b"]
Word.delete_all(:words => words)
不隶属于 StackOverflow