如何将数值数据分组到Rails中的范围

时间:2014-05-17 06:18:47

标签: ruby-on-rails

在Rails 3.2应用程序中,我有以下模型

create_table "people", do |t|
  t.integer  "height"
end

height属性是一个人的身高(厘米)。

我现在想要将此表中的数据分组为5cm高度类,并返回每个高度类的计数。例如,

{"height_classes":[150-155, 155-160, 160-165],"height_counts":[1, 3, 11]}

我如何按类分组?

到目前为止,我已经使用了以下内容:

step = 5
data = People.all.sort_by &:length
height_classes = data.map{ |d| d.height - (d.length % step) }.uniq
height_counts = height_classes.map{ |hc| data.select{ |d| d.length - (d.length % step) == l }.count}

但这并不能完全满足我的需求。我要做的是:

  • height_classes从最小值到最大值运行 高度栏(但调整到5厘米级 - 即如果最小 值为172,分组应为170-175)
  • 应包括任何空类,计数为零
  • height_classes应该是一个显示范围的字符串 值

这可能吗?

0 个答案:

没有答案