From f1d16ef1f5347dfd6aac670beec8f729f3ab193e Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Kowalski Date: Mon, 8 Apr 2024 18:56:36 +0200 Subject: [PATCH] Get rid of N+1s --- app/controllers/solid_errors/errors_controller.rb | 4 +++- app/views/solid_errors/errors/_row.html.erb | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/solid_errors/errors_controller.rb b/app/controllers/solid_errors/errors_controller.rb index 79b9002..f352bb7 100644 --- a/app/controllers/solid_errors/errors_controller.rb +++ b/app/controllers/solid_errors/errors_controller.rb @@ -11,7 +11,9 @@ def index @errors = Error.unresolved .joins(:occurrences) - .select(errors_table[Arel.star], occurrences_table[:created_at].maximum.as("recent_occurrence")) + .select(errors_table[Arel.star], + occurrences_table[:created_at].maximum.as("recent_occurrence"), + occurrences_table[:id].count.as("occurrences_count")) .group(errors_table[:id]) .order(recent_occurrence: :desc) end diff --git a/app/views/solid_errors/errors/_row.html.erb b/app/views/solid_errors/errors/_row.html.erb index d5911ed..1821e07 100644 --- a/app/views/solid_errors/errors/_row.html.erb +++ b/app/views/solid_errors/errors/_row.html.erb @@ -11,10 +11,10 @@
<%= error.message %>
- <%= error.occurrences.size %> + <%= error.occurrences_count %> - <% last_seen_at = error.occurrences.maximum(:created_at) %> + <% last_seen_at = error.recent_occurrence %> <%= time_tag last_seen_at, time_ago_in_words(last_seen_at, scope: 'datetime.distance_in_words.short') %>