Ruby on rails 如何迭代当前年度内的所有记录?轨道4

Ruby on rails 如何迭代当前年度内的所有记录?轨道4,ruby-on-rails,time,ruby-on-rails-4,Ruby On Rails,Time,Ruby On Rails 4,我需要迭代数据库中的所有记录,并对一列的值求和,但仅限于今年 例如,他们会问:“将一个用户一年内购买的所有物品相加。” 我如何在rails中做到这一点?轨道?有什么方法可以帮我完成这个任务吗 例如,类似这样的内容: current_user.purchases.each do |purchase| total_purchase += purchase.amount.to_i*purchase.product.price.to_f end 对不起,我的英语很差。如果购买与用户有很多关系,并且

我需要迭代数据库中的所有记录,并对一列的值求和,但仅限于今年

例如,他们会问:“将一个用户一年内购买的所有物品相加。”

我如何在rails中做到这一点?轨道?有什么方法可以帮我完成这个任务吗

例如,类似这样的内容:

current_user.purchases.each do |purchase|
  total_purchase += purchase.amount.to_i*purchase.product.price.to_f
end

对不起,我的英语很差。

如果购买与用户有很多关系,并且有一个适当的日期字段,您可以使用

total_purchase = 0
current_user.purchases.where('date_field > ?', Time.now.beginning_of_year).each do |purchase|
  total_purchase += purchase.amount.to_f * purchase.product.price.to_f
end
或者,如果您想在去年使用,您可以更改where子句:
where(日期字段:1.年.前.年的开始..时间.现在.年的开始)


<> > <代码>产品<代码>有<代码>归属到关系>代码>购买< /代码>,考虑使用<代码>。包括:(产品)限制您的db查询。

对用户1年的所有购买进行求和。
听起来更像是需要对用户1年或更久的所有购买进行求和。@toolz仅一年。所有购买的用户只有2014。考虑相关指南。