我每周查看项目。对于每个项目,我都在为一周中的每一天获取第一条记录。对我来说重要的是始终获得当天的第一条记录,并知道哪些工作日没有记录。现在,我在嵌套的 for 循环中为每个项目 + 星期几组合使用单独的 SQL 字符串来执行此操作。
这感觉不对。看来我应该能够通过 Group By 和 Limit 使用 ActiveRecord / SQL 来获得这个,并使用 Ruby/Rails 来处理结果。这可能吗?
提前致谢。- 大卫
我每周查看项目。对于每个项目,我都在为一周中的每一天获取第一条记录。对我来说重要的是始终获得当天的第一条记录,并知道哪些工作日没有记录。现在,我在嵌套的 for 循环中为每个项目 + 星期几组合使用单独的 SQL 字符串来执行此操作。
这感觉不对。看来我应该能够通过 Group By 和 Limit 使用 ActiveRecord / SQL 来获得这个,并使用 Ruby/Rails 来处理结果。这可能吗?
提前致谢。- 大卫
这能完成工作吗?(使用 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
你可以用
for pj in @project
p pj.project_date if pj.project_date #nil if no project found
end