按工作日检索rails中的记录

时间:2014-06-17 00:54:05

标签: ruby-on-rails activerecord ruby-on-rails-4

在我的应用程序中,我想显示一个图表,显示某天创建某些记录(例如,周一5记录,周二2记录等)

如何在工作日按轨道检索记录?

提前致谢 麦克

2 个答案:

答案 0 :(得分:0)

您可以在ActiveRecord查询中使用group按工作日分组。类似于下面的东西:

def self.recent_by_day(created_after
  where("create_at >= ?", created_after).group("day")
end

您可以找到文档here

答案 1 :(得分:0)

是的,你可以这样做

MyClass.where("DAYOFWEEK(created_at) == 3")

如果你想要图表的所有值,你可以这样做:

MyClass.select("DAYOFWEEK(created_at) as DOW, count(*) as CNT")
       .group("DOW").each do |f| 
    puts "#{f.DOW}, #{f.CNT}" 
end 

输出:

1, 2
5, 1
7, 68

我认为在这种情况下,最好使用数据库的强大功能来处理分组的繁重工作。这就是他们擅长的。