【发布时间】:2016-03-10 21:39:00
【问题描述】:
尝试查找特定日期的记录,然后一起添加一个字段。
days = 7.times
days.each do |day|
today = Date::DAYNAMES[day]
@dailysheets = @timesheet.sheets.where(:date.strftime("%A") == today)
@dailyhours =+ @dailysheets.sum(:hours)
end
问题是我不能在 where 条件下使用 .strftime...
有没有办法重构它来工作?
【问题讨论】:
-
您可能不应该这样做。您正在将一个查询变成七个查询。您应该加载所有记录(假设它是一组相当小的记录)并在 Ruby 中对它们进行分区。
-
想知道替代方案吗?我这样做 7 次的原因是,如果有多个记录,我可以每天检查记录,然后将它们组合在一起。这部分不太相关,因为它会改变 = @dailyhours =+ @dailysheets.sum(:hours) 但找到每天的记录是这里的问题......
标签: ruby-on-rails postgresql ruby-on-rails-4