2010-11-03 67 views
1

我想建立一个查询,执行以下操作:导轨 - 查询组总结

  • 的目标是:这个月显示的总访问数所有的每一天该公司的产品。
  • 第一:我们找到属于的所有用户 @ company.product(每个用户都有一个product_id)。
  • 在过去的30天中,每天按这些用户进行的所有访问次数进行分组。
  • 将视图中的这些visit_count总和呈现为30个以逗号分隔的值(23,26,21,63,21,42等)。

到目前为止(无资金尚未):

#controller 
@visits = User.group("date(created_at)").having("product_id IN (?) AND created_at > ?", @company.products.select("id"), 1.month.ago).order("created_at").select("visit_count") 
    # this simpler version causes error: undefined method 'empty?' for 2010-10-03 17:55:57 UTC:Time 
    @visits = User.group("created_at").having("date(created_at) > (?)", 1.month.ago) 

#view: 
<%= @visits.map(&:visit_count).join(",") 

上面的查询会产生错误(3个参数为2),但我已经试过类似这样的很多组合和我不断收到错误。我只是不太了解ActiveRecord。如何写这个查询?非常感谢你。

回答

1

这对我的作品......

User.group("DATE(created_at)").having(['created_at > ?', 1.month.ago]).count 

产量...

=> {"2011-01-19"=>2, "2011-01-27"=>1} 
+1

做不是为你工作?这个声明返回了什么? – 2011-01-29 05:51:50