まず、データの構成例。
20140815111127_create_products.rb
class CreateProducts < ActiveRecord::Migration def change create_table :products do |t| t.references :user, null:false # 外部キー t.string :name # 作品名 t.integer :product_price # 作品価格 t.timestamps end add_index :products, :user_id end end
一般的な方法はループを回して、合算します。
app/controllers/products_controller.rb
class ProductsController < ApplicationController def index @products = Product.all @total_price = 0 @products.each do |product| @total_price += product.product_price end end end
ちょっとループ文を書くのは面倒ですが、ActiveRecord::Calculationのsumメソッドを使うと簡単になります。
app/controllers/products_controller.rb
class ProductsController < ApplicationController def index @products = Product.all @total_price = @products.sum(:product_price) end end
他にもinjectという方法もありますが、それは下記の参考サイトを見て下さい。
参考
例えば Rails 4 で Product モデルの price 属性の合計値を出す(inject, sum) – 彼女からは、おいちゃんと呼ばれています