如何在单个事务中更新计数器或多个计数器?

时间:2011-09-05 16:37:43

标签: ruby-on-rails ruby

我的模型上有几个计数器,我想增加/减少这些计数器,它们应该在事务中完成。

例如,User模型有sales_countfriend_count

现在我想在事务中修改它们:

user.sales_count += 1
user.friend_count += 3
user.save

如何在交易中执行此操作?

我知道有increment_counter,但这似乎只针对一个属性,我无法弄清楚如何添加2或减去2而不是1。

1 个答案:

答案 0 :(得分:2)

您可以使用update_counters

User.update_counters(user_id, :sales_count => 1, :friend_count => 3, :other_count => -2)