如何改善以下更新的效果?
Post.find(id1).update_attributes(:my_field => value1)
Post.find(id2).update_attributes(:my_field => value2)
Post.find(id3).update_attributes(:my_field => value3)
... ...
Post.find(idN).update_attributes(:my_field => valueN)
答案 0 :(得分:1)
您可以使用update_all
通过单个SQL查询执行此操作Post.update_all("field = 'value'", "id IN (id1, id2...)")
编辑:这不适用于单个语句,当然你会有N个Post.update_all
个句子用于N个帖子,因为每个帖子都有不同的值,但是因为它使得和SQL UPDATE并且不会实例化Post对象目前比Post.find.update_attributes
快。