我的应用程序中有一个需要一次更新多个对象的评分系统。为了确保原子性,我使用update_all来增加计数器
rids = ["1", "3", "5", "7"]
lids = ["2", "4", "6", "8"]
User.where(id: rids).update_all("points_right = points_right + #{points}")
User.where(id: lids).update_all("points_left = points_left + #{points}")
那是在使用少量对象,但现在却丢失了一两个对象。
我做错了什么?
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
Rails 5.1.3