Ruby on rails 3 Rails作用域计数记录(按星期几)

Ruby on rails 3 Rails作用域计数记录(按星期几),ruby-on-rails-3,activerecord,scope,rails-activerecord,Ruby On Rails 3,Activerecord,Scope,Rails Activerecord,我有一个Rails 3.2.14应用程序,我使用仪表板提供基本统计数据,如当天的通话次数等。我有多个作用域,用于计算今天、今年迄今和上一年迄今的调用。我想添加一种方法,按一周中的M、T、W、Th、Fri、Sat和本周的太阳计算通话次数 到目前为止,我编写了一个简单的作用域,它传递日期参数并查询transfer\u date,如下所示: call.rb scope :by_day, lambda { |date| where('transfer_date BETWEEN ? AND ?', da

我有一个Rails 3.2.14应用程序,我使用仪表板提供基本统计数据,如当天的通话次数等。我有多个作用域,用于计算今天、今年迄今和上一年迄今的调用。我想添加一种方法,按一周中的M、T、W、Th、Fri、Sat和本周的太阳计算通话次数

到目前为止,我编写了一个简单的作用域,它传递日期参数并查询
transfer\u date
,如下所示:

call.rb

scope :by_day,  lambda { |date| where('transfer_date BETWEEN ? AND ?', date.beginning_of_day, date.end_of_day) }
因此,如果我这样做:
Call.by_day(1.day.ago)
我会得到一个数组,其中包含24小时内昨天的所有通话

在我看来,我可以简单地做
@call.by_day(1.day.ago)。count@call.by_day(2.day.ago)。count
等。但我想限制当前一周的数字,否则这是一个7天的连续计数。我想在每个输出上面我都可以做
等等,但这看起来不是很干净

因此,总结一下,我想获得一周的快照,按一周中的某一天计数,每一天都有一个日期标签(周一、周二等)或一个日期标签(2014年9月22日、2014年9月23日),等等


有人对如何干净利落地做到这一点以及如何最小化视图加载的查询有什么建议吗?

我有一个关于这一点的建议

以下是自述文件中的一些示例:

Post.by_year(2013)                           # all posts in 2013
Post.before(Date.today)                      # all posts for before today
Post.yesterday                               # all posts in 2013
Post.between_times(Time.zone.now - 3.hours,  # all posts in last 3 hours
                  Time.zone.now)
@post.next                                   # next post after a given post
要在一天内收到邮件

Post.by_day(1.day.ago)

这真的很酷,我喜欢。唯一需要注意的是,我试图根据名为
transfer\u date
的列,而不是通过
created\u在
获得我的
Call
模型的计数。有没有一种方法可以将
transfer\u date
作为参数传递,以获取基于该日期的计数?我们根据
transfer\u date
进行统计,因为我们想知道哪些电话是在什么日期到达的。例如,电话可能在今天创建,但
转接日期可能在明天。因此,在我们的场景中,使用gem调用
Call.today.count
可能会给出不正确的数字。想法?太棒了,我会把宝石装上去试试。如果我使用这个gem,我将不得不放弃我用来计算调用数的
范围,但这没什么大不了的。