0

私はActiveRecordのことを知っています...しかし、の代わりにincrement_counter何かをインクリメントする必要があります。0.51

何かのようなもの:User.increment_counter(:credits_count, RECORD_ID, 0.5)

簡単にインクリメントするための何らかのヘルパー/方法はあります0.5か?または、レコードをプルして現在のカウントを取得し、0.5そのカウントに追加して保存する必要がありますか?

4

2 に答える 2

1

使用できます.increment

だから基本的にはUser.find(RECORD_ID).increment(:credits_count, 0.5)

Api Doc Increment

于 2013-01-24T16:09:57.340 に答える
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) に一致するすべてのものを更新するため、注意してください。確認する前にいくつかのテストを実行する必要があるかもしれません。

于 2013-01-24T16:29:28.310 に答える