【发布时间】:2014-09-26 12:48:35
【问题描述】:
我有一个 Rails 3.2.14 应用程序,我在其中使用仪表板提供基本统计信息,例如当天的通话次数等。我有多个范围来计算今天、年初至今和上一年至今的电话。我想添加一种方法来按本周 M、T、W、Th、Fri、Sat、Sun 的星期几计算通话。
到目前为止,我编写了一个简单的范围,它传递一个日期参数并查询transfer_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 天的运行计数。我想在每个输出上面我可以做<%= 1.day.ago.strftime("%m/%d/%y") %> <%= 2.day.ago.strftime("%m/%d/%y") %> 等。但这似乎不是很干净。
总而言之,我想获取一周的快照,按星期几计算,每个都带有日期标签(星期一、星期二等)或日期标签(2014 年 9 月 22 日、9 日/ 23/14)等
是否有人对如何干净利落地执行此操作以及最小化视图加载查询有任何建议?
【问题讨论】:
标签: ruby-on-rails-3 activerecord scope rails-activerecord