我知道ActiveRecord的increment_counter
...但我需要按0.5
而不是1
来增加一些东西.
像这样:User.increment_counter(:credits_count, RECORD_ID, 0.5)
有没有某种帮助程序/方法可以轻松递增0.5
?还是我必须拉取记录,获取当前计数,然后将0.5
添加到该计数并保存?
.increment
所以基本上会User.find(RECORD_ID).increment(:credits_count, 0.5)
API 文档增量
如果您不希望对象的所有加载都使其更快,请使用 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),也许您想在之前进行一些测试以确保