Ruby on rails 3 分组,总计在Rails和活动记录中
我正在尝试将活动记录中的一系列记录分组,以便进行一些计算,以规范化每条记录的quantity属性,例如: 用户输入日期和数量。日期不是唯一的,所以我可能有10-20个数量为每个日期。我只需要处理每天的总数,而不是每个记录。因为,在确定了最高值和最低值之后,我基本上通过除以Ruby on rails 3 分组,总计在Rails和活动记录中,ruby-on-rails-3,activerecord,normalization,Ruby On Rails 3,Activerecord,Normalization,我正在尝试将活动记录中的一系列记录分组,以便进行一些计算,以规范化每条记录的quantity属性,例如: 用户输入日期和数量。日期不是唯一的,所以我可能有10-20个数量为每个日期。我只需要处理每天的总数,而不是每个记录。因为,在确定了最高值和最低值之后,我基本上通过除以n来转换每个值,通常是10 这就是我现在正在做的: def heat_map(project, word_count, n_div) return "freezing" if word_count == 0 wo
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_,然后添加map调用,但出现了一个错误,一个未定义的方法错误。有什么想法吗?我也愿意使用更好/更干净的方法来规范字数。如果不了解更多关于模型的信息,很难回答。因此,我假设您感兴趣的日期就是
单词表中日期处创建的。我假设在words
表中有一个名为word
的字段,用于存储实际单词
我也假设你可能有多个条目同一个单词(可能有不同的数量)在一天
因此,这将为您提供每天字数的有序散列:
project.words.group('DATE(created_at)').group('word').sum('quantity')
如果这些猜测毫无意义,那么也许您可以提供有关模型结构的更多细节