递增计数0.5?

时间:2013-01-24 16:02:18

标签: ruby-on-rails ruby-on-rails-3 rails-activerecord

我知道ActiveRecord的increment_counter ...但我需要按0.5代替1来增加内容。

类似于:User.increment_counter(:credits_count, RECORD_ID, 0.5)

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

2 个答案:

答案 0 :(得分:2)

您可以使用.increment

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

Api Doc Increment

答案 1 :(得分: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),也许你想先做一些测试以确定