0

我每周查看项目。对于每个项目,我都在为一周中的每一天获取第一条记录。对我来说重要的是始终获得当天的第一条记录,并知道哪些工作日没有记录。现在,我在嵌套的 for 循环中为每个项目 + 星期几组合使用单独的 SQL 字符串来执行此操作。

这感觉不对。看来我应该能够通过 Group By 和 Limit 使用 ActiveRecord / SQL 来获得这个,并使用 Ruby/Rails 来处理结果。这可能吗?

提前致谢。- 大卫

4

1 回答 1

1

这能完成工作吗?(使用 MySQL)

@projects = []
for day in 1..7
  @projects.push Project.where("DAYOFWEEK(project_date) = ?", day).where(:project_date => Time.now.all_week).order('project_date desc').first
end
#Time.now.all_week assumes you're working with Rails 3.2

查看MySQL 文档中的 DATEOFWEEK()

你可以用

for pj in @project
  p pj.project_date if pj.project_date #nil if no project found
end
于 2012-07-05T19:17:02.840 回答