Reduce N+1 queries for ExercisesController#feedback

Fixes CODEOCEAN-TF
This commit is contained in:
Sebastian Serth
2023-08-30 18:46:09 +02:00
parent 094aba096c
commit 7aeca0078f

View File

@ -90,9 +90,12 @@ class ExercisesController < ApplicationController
def feedback def feedback
authorize! authorize!
@feedbacks = @exercise.user_exercise_feedbacks.paginate(page: params[:page], per_page: per_page_param) @feedbacks = @exercise
.user_exercise_feedbacks
.includes(:exercise, user: [:programming_groups])
.paginate(page: params[:page], per_page: per_page_param)
@submissions = @feedbacks.map do |feedback| @submissions = @feedbacks.map do |feedback|
feedback.exercise.final_submission(feedback.user.programming_groups.where(exercise: @exercise).presence || feedback.user) feedback.exercise.final_submission(feedback.user.programming_groups.select {|pg| pg.exercise = @exercise }.presence || feedback.user)
end end
end end