小编Cha*_*les的帖子

ROR集团如何及时接近彼此

多年来我没有编码任何东西,所以请原谅我的愚蠢问题,但是如果它们按时间戳接近每个项目,我想分组.我的意思是,例如彼此相距不到5分钟的项目将被递归地分组.通过递归,我的意思是第一个和最后一个项目彼此之间的距离不必少于5分钟,但是它们之间需要的项目距离上一个和下一个项目都不到5分钟.所以我需要的是一种比较当前项目与前一项目的方法,如果它们彼此相距不到5分钟,则当前项目将添加到与上一项目相同的组中.

ActiveRecord解决方案会很好,因为项目数量非常大!

问题是使用group_by,我找不到上一个项目,以便我可以比较时间戳.我尝试过这样一些愚蠢的东西来比较这些项目:

a.group_by { |x| x.created_at == a[a.index(x)-1].created_at }
Run Code Online (Sandbox Code Playgroud)

但我得到:

NoMethodError:nil的未定义方法`created_at':NilClass

有没有办法使用group_by执行此操作,还是需要"手动"迭代这些项目?对于一个非常有效的解决方案的任何建议,因为项目数量非常大?

谢谢!

ruby activerecord grouping group-by ruby-on-rails

2
推荐指数
1
解决办法
620
查看次数

标签 统计

activerecord ×1

group-by ×1

grouping ×1

ruby ×1

ruby-on-rails ×1