输出模型的多个实例的属性的添加

时间:2012-07-25 22:45:46

标签: ruby-on-rails ruby ruby-on-rails-3

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 。对不起。

1 个答案:

答案 0 :(得分:1)

可以通过Arel

完成
@user.workdays.sum(:sales)

您也可以查询特定的时间间隔

@user.workdays.where("date BETWEEN ? AND ?",start_date, end_date).sum(:sales)