我需要在 Ruby on Rails 应用程序中循环几个月。对于每个月,我需要找到给定月份的第一天和最后一天。然后在单独的查询中使用这些日期来查找在这些日期期间发生的事件并对其进行计算。
最初,我尝试了类似的方法:
(11.months.ago.to_date.month..Date.today.month).each do |m|
start_date = '01-#{m}-#{Date.today.year}'.to_date.beginning_of_month
end_date = '01-#{m}-#{Date.today.year}'.to_date.end_of_month
end
当然,如果 11 个月前涉及回到上一年,则在这种情况下不会更新年份。而且,我认为这种类型的 for/each 循环不起作用。我还尝试将数字映射到数组并使用相同的方法,但收到错误。
完成这样的事情的最佳方法是什么?