Skip to content

Commit ea24660

Browse files
authored
Merge pull request #6946 from andoq/andoq/6496_n_plus_one_cases_cases_index
#6496 n plus one cases cases index
2 parents fbcf4c4 + 575c256 commit ea24660

4 files changed

Lines changed: 9 additions & 3 deletions

File tree

app/controllers/casa_cases_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class CasaCasesController < ApplicationController
66

77
def index
88
authorize CasaCase
9-
org_cases = current_user.casa_org.casa_cases.includes(:assigned_volunteers)
9+
org_cases = current_user.casa_org.casa_cases.includes(:assigned_volunteers, :casa_case_emancipation_categories)
1010
@casa_cases = policy_scope(org_cases).includes([:hearing_type, :judge])
1111
@casa_cases_filter_id = policy(CasaCase).can_see_filters? ? "casa-cases" : ""
1212
@duties = OtherDuty.where(creator_id: current_user.id)

app/decorators/casa_case_decorator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def unsuccessful_contacts_this_week_before(date)
114114
end
115115

116116
def emancipation_checklist_count
117-
"#{object.casa_case_emancipation_categories.count} / #{EmancipationCategory.count}"
117+
"#{object.casa_case_emancipation_categories.size} / #{h.emancipation_category_total_count}"
118118
end
119119

120120
def show_contact_type?(contact_type_id)

app/helpers/emancipations_helper.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
module EmancipationsHelper
2+
# Memoized per request so the casa_cases index doesn't re-issue COUNT(*)
3+
# for every casa_case row when rendering the emancipation badge.
4+
def emancipation_category_total_count
5+
@emancipation_category_total_count ||= EmancipationCategory.count
6+
end
7+
28
def emancipation_category_checkbox_checked(casa_case, emancipation_category)
39
case_contains_category?(casa_case, emancipation_category) ? "checked" : nil
410
end

spec/decorators/casa_case_decorator_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102

103103
expect(casa_case).to(
104104
receive(:casa_case_emancipation_categories).and_return(
105-
double(:categories, count: 2)
105+
double(:categories, size: 2)
106106
)
107107
)
108108
expect(EmancipationCategory).to receive(:count).and_return(5)

0 commit comments

Comments
 (0)