特定のレコードを増加させるRailsのメソッド「increment」

こんにちは!kossyです!




さて、今回は、Railsのメソッドであるincrementの使い方とユースケースについて、ブログに残してみたいと思います。




使い方

基本的な使い方はこうです。

Model.increment(:attribute, value)

モデル(本体でもレコードでもOK)の属性に対して呼ぶことで、値を増加させることができます。




ユースケース

ECサイト等で、在庫の変動調整なんかに使えるんじゃないでしょうか。

items.each do |item|
  item.increment!(:stock, -1 * purchase_count) # decrementでもよくね?とか言わないでね☆
end

increment!とすると、saveメソッドを使わなくても値の変更を永続化できます。

外野から何か聞こえてきたので注意書きを入れましたが、ユースケースのイメージとしては
こんな感じではないでしょうか。




参考にさせていただいたサイト
increment - リファレンス - - Railsドキュメント
Rails5 で `#increment!` と `#decrement!` が同時実行を意識した処理になった! - Qiita
意外と知らないかもしれないRuby, Railsのメソッドとか - Qiita