0

我知道 ActiveRecord 的increment_counter......但我需要增加一些东西0.5而不是1.

就像是:User.increment_counter(:credits_count, RECORD_ID, 0.5)

是否有某种帮助/方法可以轻松递增0.5?还是我必须提取记录,获取当前计数,然后添加0.5到该计数并保存?

4

2 回答 2

1

您可以使用.increment

所以基本上是User.find(RECORD_ID).increment(:credits_count, 0.5)

Api 文档增量

于 2013-01-24T16:09:57.340 回答
0

如果您不希望对象的所有加载使其更快,请使用 update_all

def self.increment_float(user_id,counter,value)
  User.update_all("#{counter} = #{counter} + #{value}",{:id => user_id})
end

要小心,因为 update_all 会更新与 where 条件匹配的所有内容(在本例中为 id == user_id),也许你想在确定之前做一些测试

于 2013-01-24T16:29:28.310 回答