0
我的模型上有几个计数器,我想增加/减少这些计数器,它们应该在事务中完成。如何在单个事务中更新计数器或多个计数器?
因此,例如,User
型号具有sales_count
,friend_count
。
现在我想在一个事务中来修改他们两个:
user.sales_count += 1
user.friend_count += 3
user.save
我怎样才能在交易中做到这一点?
我知道有increment_counter,但是这似乎是只有一个属性,我无法弄清楚如何添加2或减去2,而不是仅仅1
如果我想要将2个列值一起添加,那么该怎么办? (不是在内存中的模型,但在数据库级别,如:counter3 =>:counter1 +:counter2(这不'工作,但我希望它!) – Blankman
我不认为有一种方法可以做你想做的。你可以看一下'update_counters'方法的源代码,看看它是如何完成的(基本上只是动态生成SQL):http://apidock.com/rails/ActiveRecord/CounterCache/update_counters – PeterWong
未来不要忘记在相关模型中将缓存添加到true – BKSpurgeon