我有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)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top