Jus*_*tin 1 ruby ruby-on-rails ruby-on-rails-3
我试图通过模型方法构建一个看起来像这样的数组:
[['3/25/13', 2], ['3/26/13', 1], ['3/27/13', 2]]
其中,日期是字符串,后面的数字count
是表/对象.
我现在有以下模型方法:
def self.weekly_count_array
counts = count(group: "date(#{table_name}.created_at)", conditions: { created_at: 1.month.ago.to_date..Date.today }, order: "date(#{table_name}.created_at) DESC")
(1.week.ago.to_date).upto(Date.today) do |x|
counts[x.to_s] ||= 0
end
counts.sort
end
Run Code Online (Sandbox Code Playgroud)
但是,它不会准确返回计数(所有值都为零).似乎有一些类似的问题,我已经检查过,但似乎也无法使它们工作.
有人可以提供帮助(1)让我知道这是否是最好的方法,(2)就上述代码可能出现的问题提供一些指导,如果有的话?谢谢!
如果您愿意,可以将其用作模板
def self.period_count_array(from = (Date.today-1.month).beginning_of_day,to = Date.today.end_of_day)
where(created_at: from..to).group('date(created_at)').count
end
Run Code Online (Sandbox Code Playgroud)
这将返回一个哈希,其中日期为关键,计数为值.(Rails 3.2.x)