Activerecord - 获取所有相关记录的总和

时间:2017-04-21 16:44:42

标签: activerecord subquery

我有2个型号:发票和付款

# == Schema Information
#
# Table name: invoices
#
#  id          :integer          not null, primary key
#  totale      :decimal(8, 3)
#  ....
#  ....
#

class Invoice < ActiveRecord::Base
    has_many :payments

end




# == Schema Information
#
# Table name: payments
#
#  id         :integer          not null, primary key
#  invoice_id :integer
#  importo    :decimal(8, 3)
#  ....
#

class Payment < ActiveRecord::Base
  belongs_to :invoice

end

我需要在发票的视图中总结所有付款的总和,而不是在每张发票中进行迭代。

我怎样才能找到它? 我试过

@fatture = Invoice.all
@fatture.payment.sum(:importo)

没有成功!!

1 个答案:

答案 0 :(得分:0)

据我了解这个问题,你想总结一下这个问题。与任何发票相关的所有付款,而不是在ruby中迭代付款。

我相信您需要的是将付款合并到发票上。

Invoice.joins(:payments).sum('payments.importo') 

Rails Docs