【问题标题】:Increment count by 0.5?将计数增加 0.5?
【发布时间】:2013-01-24 16:02:18
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    你可以使用.increment

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

    Api Doc Increment

    【讨论】:

      【解决方案2】:

      如果您不希望对象的所有加载使其更快,请使用 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),也许您需要先做一些测试才能确定

      【讨论】:

        猜你喜欢
        • 2016-08-23
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        • 2013-06-06
        • 2019-11-16
        • 2017-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多