轨道上的红宝石 - 增量计数 0.5



我知道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),也许您想在之前进行一些测试以确保

相关内容

  • 没有找到相关文章

最新更新