【发布时间】:2011-01-27 18:05:50
【问题描述】:
我正在尝试构建一个执行以下操作的查询:
- 目标:显示本月每天所有公司产品的总访问次数。
- 首先:我们找到属于 any @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(",")
上面的查询引发了一个错误(2 的 3 个参数),但我尝试了许多与此类似的组合,但我不断收到错误。我只是不太熟悉 ActiveRecord。如何编写此查询?非常感谢。
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3