Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 分组,总计在Rails和活动记录中_Ruby On Rails 3_Activerecord_Normalization - Fatal编程技术网

Ruby on rails 3 分组,总计在Rails和活动记录中

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

我正在尝试将活动记录中的一系列记录分组,以便进行一些计算,以规范化每条记录的quantity属性,例如:

用户输入日期和数量。日期不是唯一的,所以我可能有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_,然后添加map调用,但出现了一个错误,一个未定义的方法错误。有什么想法吗?我也愿意使用更好/更干净的方法来规范字数。

如果不了解更多关于模型的信息,很难回答。因此,我假设您感兴趣的日期就是
单词表中
日期处创建的
。我假设在
words
表中有一个名为
word
的字段,用于存储实际单词

我也假设你可能有多个条目同一个单词(可能有不同的数量)在一天

因此,这将为您提供每天字数的有序散列:

project.words.group('DATE(created_at)').group('word').sum('quantity')
如果这些猜测毫无意义,那么也许您可以提供有关模型结构的更多细节