想知道是否有人可以协助这个
我有以下协会
User - has_many :campaigns
Campaign - has_many :donations
belongs_to :user
Donation - belongs_to :campaign
作为一名用户,我想获得为current_user创建的广告系列所做的所有捐款的总和,所以我尝试了这个
@campaigns = current_user.campaigns
@total_donations = @campaigns.dontations.sum('donation_amount')
但它不是那么简单,因为我必须遍历属于该用户的每个广告系列吗?
最好的办法是什么?范围或实例方法也会更好吗?
任何帮助表示赞赏
答案 0 :(得分:4)
has_many :through
association应该有效:
class User < ActiveRecord::Base
has_many :campaigns
has_many :donations, through: campaigns
end
current_user.donations.sum(:donation_amount)