Reduce SQL queries in the study groups controller
Fixes CODEOCEAN-Y7
This commit is contained in:
@ -7,20 +7,23 @@ class StudyGroupsController < ApplicationController
|
||||
|
||||
def index
|
||||
@search = policy_scope(StudyGroup).ransack(params[:q])
|
||||
@study_groups = @search.result.includes(:consumer).order(:name).paginate(page: params[:page], per_page: per_page_param)
|
||||
@study_groups_paginate = @search.result.includes(:consumer).order(:name).paginate(page: params[:page], per_page: per_page_param)
|
||||
@study_groups = @study_groups_paginate.joins(:study_group_memberships)
|
||||
.group(:id, :name, :external_id, :consumer_id, :created_at, :updated_at)
|
||||
.select(:id, :name, :external_id, :consumer_id, :created_at, :updated_at, 'count(study_group_memberships.id) as user_count')
|
||||
authorize!
|
||||
end
|
||||
|
||||
def show; end
|
||||
|
||||
def edit
|
||||
@members = StudyGroupMembership.where(user: @study_group.users, study_group: @study_group).includes(:user)
|
||||
@members = @study_group.study_group_memberships.includes(:user)
|
||||
end
|
||||
|
||||
def update
|
||||
myparams = study_group_params
|
||||
myparams[:external_users] =
|
||||
StudyGroupMembership.find(myparams[:study_group_membership_ids].compact_blank).map(&:user)
|
||||
@study_group.study_group_memberships.where(id: myparams[:study_group_membership_ids].compact_blank).includes(:user).map(&:user)
|
||||
myparams.delete(:study_group_membership_ids)
|
||||
update_and_respond(object: @study_group, params: myparams)
|
||||
end
|
||||
|
Reference in New Issue
Block a user