0

我想有一个功能,根据一定的年龄范围对用户进行分组。然后得到他们的计数,我可以用它来绘制条形图。e

这个语句能够绘制他们的年龄图表,但它是每个用户的年龄。这就是我要消除的。如果您想知道我正在使用chartkick制作图表。

<%= bar_chart User.group("date_trunc('year', age(dob))").count, {library: {title: "User's Age"}} %>

我希望年龄返回为:

<%= bar_chart [["Below 10", users_with_ages_lying_in this_range.count],
          ["10-19", users_with_ages_lying_in this_range.count],
          ["20-29", ],
          ["30-39", ],
          ["40-49", ],
          ["above 50",]], {library: {title: "User's Age"}} 
%>

简而言之,我希望这行代码User.group("date_trunc('year', age(dob))").count只返回给定年龄范围的用户。

如果您有更好的想法,我将不胜感激。 我正在使用 postgres 数据库

4

1 回答 1

1

我也有类似的需要来查找某个范围内的事件。

我在模型上做了一个类方法:

  def self.in_range(start_range, end_range)
    where "((start_date <= ?) and (end_date >= ?))", end_range, start_range
  end

像这样使用:

events.in_range(start_range, end_range).order('start_date ASC')

我确信可以使用年龄而不是 start_date 和 end_date 创建一个类似的。

于 2013-11-06T08:27:19.680 回答