按列分组,循环

时间:2013-11-13 12:06:15

标签: ruby-on-rails activerecord ruby-on-rails-3.2 ruby-on-rails-4

如何使用此查询按:key_id进行分组(key_id是报表中的一列),该查询是名为Project的模型中的方法

self.reports.select{ |report| report.level <= 50}

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

self.reports.select{ |report| report.level <= 50 }.group_by(&:key_id)

.group_by(&:key_id)简洁明了.group_by{ |report| report.key_id }

答案 1 :(得分:0)

你不想在这里使用带方块的select方法。原因是这是一个在数组上定义的方法,因此返回纯ruby数组,而不是关系对象。而是做:

self.reports.where('level <= ?', 50).group(:key_id)