Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 在循环中按列分组_Ruby On Rails_Activerecord_Ruby On Rails 3.2_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在循环中按列分组

Ruby on rails 在循环中按列分组,ruby-on-rails,activerecord,ruby-on-rails-3.2,ruby-on-rails-4,Ruby On Rails,Activerecord,Ruby On Rails 3.2,Ruby On Rails 4,如何使用此查询按:key\u id分组(key\u id是报告表中的一列),该查询是名为Project self.reports.select{ |report| report.level <= 50} self.reports.select{| report | report.level您不想在这里对块使用select方法。原因是这是在数组上定义的方法,因此返回的是纯ruby数组,而不是关系对象。请改为: self.reports.where('level <= ?', 50).

如何使用此查询按
:key\u id
分组(
key\u id
是报告表中的一列),该查询是名为
Project

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

self.reports.select{| report | report.level您不想在这里对块使用select方法。原因是这是在数组上定义的方法,因此返回的是纯ruby数组,而不是关系对象。请改为:

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

self.reports.where('level这应该可以做到:

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

self.reports.select{| report | report.level I获取此信息:
列“reports.id”必须出现在GROUP BY子句中或在聚合函数中使用
-`select“reports”。*从“reports”中的“reports”开始,其中的“reports”。“project_id”=$1和(级别您需要在上述代码中添加select语句,以指定分组时对其他列执行的操作-例如,如果您只想对具有相同键id的元素进行计数,则需要添加“select”(“键id,计数(*)作为计数”)`