From 81a63f2922ff60c1b7ddba0c7a7f28fcbae455f0 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Wed, 15 Jan 2014 13:29:31 -0700 Subject: [PATCH] use an AR query to get a grouped count instead of custom SQL refs CNVS-7032 primarily, Mysql's execute doesn't return rows, but this is much much cleaner anyway Change-Id: Ia8c13374e5625ae0568f9bc386101dd2a2048d88 Reviewed-on: https://gerrit.instructure.com/28620 Tested-by: Jenkins Reviewed-by: Nick Cloward QA-Review: Cody Cutrer Product-Review: Cody Cutrer --- app/controllers/collections_controller.rb | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb index 526e545f4a2..a456ab652a9 100644 --- a/app/controllers/collections_controller.rb +++ b/app/controllers/collections_controller.rb @@ -298,15 +298,7 @@ class CollectionsController < ApplicationController end def preload_groups_collections_counts(groups) - counts_data = Collection.connection.execute(Collection.send(:sanitize_sql_array, [<<-SQL, groups.map(&:id)])).to_a - SELECT context_id AS group_id, COUNT(*) AS collections_count - FROM collections - WHERE context_id IN (?) AND context_type='Group' AND workflow_state='active' - GROUP BY context_id - SQL - @collections_counts = {} - counts_data.each do |cd| - @collections_counts[cd['group_id'].to_i] = cd['collections_count'].to_i - end + @collections_counts = Collection.where(context_id: groups, context_type: 'Group', workflow_state: 'active'). + group(:context_id).count end end