Reduce SQL queries in the study groups controller

Fixes CODEOCEAN-Y7
This commit is contained in:
Sebastian Serth
2023-09-25 22:15:27 +02:00
parent a9d756171b
commit 684639696d
3 changed files with 8 additions and 5 deletions

View File

@ -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