#やりたいこと
保存されているデータの特定のカラムの合計値を出したい!と思いました。
最初考えたのは、
①取得したいカラムのモデルをeach文で1件ずつ取得し、そのデータのカラムを一度配列にする
②↑の配列に対してsumメソッドで合計を求める
これでも全然問題なかったのですが、
sumメソッドの引数で直接カラム名を指定し、合計値を求めることも出来ると知ったのでまとめます!
#カラムの合計を求める方法①
これは私がもともと考えていたやり方です。
test.rb
#booksテーブルのpriceカラムの合計値を求めたい場合
array = [] #空の配列を用意し、
Book.all.each do |book|
array << book.price
#bookテーブルのレコードを1件ずつ取り出し、priceカラムのデータを配列に入れる
end
array.sum #ここで合計を求める
#カラムの合計を求める方法②
次に、もっと簡単な1行でできるやり方です。
test.rb
Book.all.sum(:price)
これだけでいけました。
sumメソッドの引数でカラムを指定できるとは知らなかったです!
とても楽ですね
また、さらにオプションを付けることもできます!
興味のある方はぜひこちらのサイトをご参考ください!
http://railsdoc.com/references/sum