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