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 DBを使用しています

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 の代わりに age を使用して同様のものを作成できると確信しています。

于 2013-11-06T08:27:19.680 に答える