Add Bullet gem for dev & fix N+1 queries issues for core index actions
All checks were successful
CI / scan_ruby (push) Successful in 26s
CI / scan_js (push) Successful in 15s
CI / lint (push) Successful in 15s
CI / test (push) Successful in 34s

This commit is contained in:
sto
2026-03-10 15:51:26 +01:00
parent ee65212f57
commit 8a993fa310
7 changed files with 17 additions and 4 deletions

View File

@@ -69,6 +69,7 @@ group :development do
gem "web-console"
gem "annotaterb"
gem "bullet"
end
group :test do

View File

@@ -91,6 +91,9 @@ GEM
brakeman (8.0.4)
racc
builder (3.3.0)
bullet (8.1.0)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11)
capybara (3.40.0)
addressable
matrix
@@ -424,6 +427,7 @@ GEM
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.2.0)
uniform_notifier (1.18.0)
uri (1.1.1)
useragent (0.16.11)
web-console (4.3.0)
@@ -455,6 +459,7 @@ DEPENDENCIES
bootsnap
bootstrap (~> 5.3.3)
brakeman
bullet
capybara
csv
damerau-levenshtein

View File

@@ -12,7 +12,7 @@ class ContestantsController < ApplicationController
def index
authorize @contest
@contestants = @contest.contestants.sort_by { |contestant| contestant.name }
@contestants = @contest.contestants.includes([ :completions, :offline ]).sort_by { |contestant| contestant.name }
filter_contestants_per_category
end

View File

@@ -10,7 +10,7 @@ class ContestsController < ApplicationController
def index
authorize :contest
@contests = current_user.contests
@contests = current_user.contests.includes([ :contestants, puzzles: [ :image_attachment ] ])
@title = I18n.t("contests.index.title", username: current_user.username)
end

View File

@@ -6,7 +6,7 @@ class PuzzlesController < ApplicationController
authorize @contest
@title = @contest.name
@puzzles = @contest.puzzles.order(:id)
@puzzles = @contest.puzzles.includes([ :image_attachment ]).order(:id)
end
def edit

View File

@@ -7,7 +7,7 @@ class UsersController < ApplicationController
authorize :user
@title = t("users.index.title")
@users = User.all
@users = User.all.includes(contests: [ :contestants, :puzzles ])
end
def edit

View File

@@ -71,4 +71,11 @@ Rails.application.configure do
# Apply autocorrection by RuboCop to files generated by `bin/rails generate`.
# config.generators.apply_rubocop_autocorrect_after_generate!
config.after_initialize do
Bullet.enable = true
Bullet.alert = true
Bullet.console = true
Bullet.rails_logger = true
end
end