我正在尝试对 Active Record 中的一系列记录进行分组,以便我可以进行一些计算来规范化每条记录的数量属性,例如:
用户输入日期和数量。日期不是唯一的,所以每个日期我可能有 10 - 20 个数量。我只需要处理每天的总数,而不是每条记录。因为然后,在确定了最高和最低值之后,我基本上通过除以n
通常为 10 来转换每个值。
这就是我现在正在做的事情:
def heat_map(project, word_count, n_div)
return "freezing" if word_count == 0
words = project.words
counts = words.map(&:quantity)
max = counts.max
min = counts.min
return "max" if word_count == max
return "min" if word_count == min
break_point = (max - min).to_f/n_div.to_f
heat_index = (((word_count - min).to_f)/break_point).to_i
end
如果我显示所有字数的表格,这非常有用,但我试图将热图应用到显示每天运行总数的日历。这显然不包括天数,所以我最终得到的数字超出了正常范围。
在我进行规范化之前,我想不出一种方法来对字数进行分组并按天计算它们。我尝试做一个 group_by 然后添加 map 调用,但我得到一个未定义方法错误的错误。有任何想法吗?我也愿意接受更好/更清洁的字数标准化方法。