我现在正在当前的Rails3项目中编写一个导出器。此导出器必须将每个导出的记录标记为“已导出”(bool)。我知道如何在循环中轻松完成这项工作,但老实说,让Rails查询数据库(例如连续300次)只是为了在300条记录上设置一个字段感觉不太好。
有谁知道是否有一种优化方法?我应该使用准备好的语句手动播放,还是Rails3自动处理?是否有另一个SQL命令可以一步完成?
感谢您的帮助
答案 0 :(得分:15)
在Class上使用update_all
方法。来自Rails API:
# Update all books with 'Rails' in their title
Book.update_all "author = 'David'", "title LIKE '%Rails%'"
答案 1 :(得分:8)
由于ActiveRecord 4.0不推荐使用这种方式(Rails API),目前的做法是:
# Update all books with 'Rails' in their title
Book.where('title LIKE ?', '%Rails%').update_all(author: 'David')