salesMy基本设置:
我有一个与工作日模型具有has_many / belongs_to关系的用户模型
工作日模型具有称为“销售”和“日期”的属性。
我想要做的是在给定的时间跨度内添加不同工作日实例的销售属性。 我开始尝试首先添加来自该用户的所有销售,这导致了
NoMethodError: undefined method `sales' for nil:NilClass
代码如下所示:
def all_sales
s = 0.to_f
c = @user.workdays.count
for i in (0..c)
s += @user.workdays[i].sales
end
end
最优雅的方式是什么?
编辑1: 错字,它是 user.workdays [i] .sales ,而不是 .count 。对不起。
答案 0 :(得分:1)
可以通过Arel
完成@user.workdays.sum(:sales)
您也可以查询特定的时间间隔
@user.workdays.where("date BETWEEN ? AND ?",start_date, end_date).sum(:sales)