From fb7bbae3f43d3e10e5171b3cffb1f3dc8de35ba0 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 9 Sep 2020 15:15:15 +0800 Subject: [PATCH] PERF: Memoize calls to `ApplicationHelper#scheme_id`. The same query was executed 4 times per full page load. --- app/helpers/application_helper.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4970b7dbd5..372df31e1e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -402,13 +402,16 @@ module ApplicationHelper end def scheme_id + return @scheme_id if defined?(@scheme_id) + custom_user_scheme_id = cookies[:color_scheme_id] || current_user&.user_option&.color_scheme_id if custom_user_scheme_id && ColorScheme.find_by_id(custom_user_scheme_id) return custom_user_scheme_id end return if theme_ids.blank? - Theme + + @scheme_id = Theme .where(id: theme_ids.first) .pluck(:color_scheme_id) .first