我正在尝试编写一个范围,它将从两个模型中获取数据,之前没有这样做过,所以看看是否有人可以帮助我理论和实践。
我的两个模型定义如此
class Member < ActiveRecord::Base
belongs_to :membership
accepts_nested_attributes_for :membership
attr_accessible :membership_id, :forename, :middlename, :surname, :house_no, :house_name, :street, :town, :postcode, :home_tel, :mobile_tel, :work_tel, :email, :start_date, :expiry_date
end
class Membership < ActiveRecord::Base
has_many :members, :dependent => :destroy
attr_accessible :membership_type, :cost
end
我想让今天加入的所有成员按照已生成的总金额核算总金额
那么我可以在范围内执行求和,还是必须编写一个获取总数然后在范围内使用该方法的方法?
class Member < ActiveRecord::Base
scope :new_memberships_cash_today, ->() {
where(:start_date => Date.today)
}
end
据我所知,到目前为止,我知道的不正确。真的不知道如何构建其余部分,任何帮助表示赞赏
答案 0 :(得分:2)
我认为类似的东西就足够了:
joins(:memberships).where(:start_date => Date.today).sum('memberships.cost')