Max*_*xsy 7 ruby ruby-on-rails rails-activerecord
我有一个2个字段的表.单词和时间戳.然后我有这个包含一些单词的数组.如何删除表中与数组中的单词匹配的所有记录?假设该模型被称为"Word".
关于如何实现这一点的任何想法?也许循环遍历数组并运行一些破坏查询.任何人都可以指点我吗?谢谢
Har*_*tty 18
做这个:
Word.delete_all(:words => words_array)
Run Code Online (Sandbox Code Playgroud)
这将在ONE SQL语句中删除与给定数组中的单词匹配的行.
例如:
words = ["pop", "pop alternative", "r&b"]
Word.delete_all(:words => words)
Run Code Online (Sandbox Code Playgroud)
如果您在模型上定义了回调,则裸 SQL 将不会调用它们。这种情况下推荐的方式是:
deletable_words = [ 'php', 'c++' ]
objs = Word.find(:all, :conditions => [ "words.word IN (?)", deletable_words])
objs.each { |o| o.destroy }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8714 次 |
| 最近记录: |