Ruby on rails 协会澄清
我有以下联想Ruby on rails 协会澄清,ruby-on-rails,ruby,ruby-on-rails-4,associations,Ruby On Rails,Ruby,Ruby On Rails 4,Associations,我有以下联想 User - has_many :campaigns Campaign - has_many :donations belongs_to :user Donation - belongs_to :campaign 作为一个用户,我希望获得当前用户创建的活动的所有捐款总额,所以我尝试了这个方法 @campaigns = current_user.campaigns @total_donations = @campaigns.dontations.sum('do
User - has_many :campaigns
Campaign - has_many :donations
belongs_to :user
Donation - belongs_to :campaign
作为一个用户,我希望获得当前用户创建的活动的所有捐款总额,所以我尝试了这个方法
@campaigns = current_user.campaigns
@total_donations = @campaigns.dontations.sum('donation_amount')
但这并不是那么简单,因为我必须循环浏览属于该用户的每个活动。对吗
最好的方法是什么?范围或实例方法是否也更好?a应该可以:
class User < ActiveRecord::Base
has_many :campaigns
has_many :donations, through: campaigns
end
current_user.donations.sum(:donation_amount)
class用户
A应在以下情况下工作:
class User < ActiveRecord::Base
has_many :campaigns
has_many :donations, through: campaigns
end
current_user.donations.sum(:donation_amount)
class用户
谢谢@Stefan,这就搞定了,我的错误是在我不需要的时候试图通过活动模型访问。我猜@Stefan做了什么?可以通过捐赠。加入(:活动)。何处(营地:{user\u id:})。总和(:捐赠\u amount)
。有许多
类方法支持速记+1谢谢@Stefan,这就搞定了,我的错误是在我不需要的时候试图通过活动模型访问,我猜?哪一个@Stefan做了可以通过generation.joins(:活动).where(campaings:{user\u id:}).sum(:generation\u amount)
完成。有许多
类方法支持速记+1.