我知道ActiveRecord的increment_counter
...但我需要按0.5
代替1
来增加内容。
类似于:User.increment_counter(:credits_count, RECORD_ID, 0.5)
是否有某种帮助/方法可以轻松地按0.5
递增?或者我是否必须提取记录,获取当前计数,然后将0.5
添加到该计数并保存?
答案 0 :(得分:2)
答案 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),也许你想先做一些测试以确定