From ced86aa8900aa9a1cf46a0428f6e0bfc742a6953 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan <tgx_world@hotmail.com> Date: Tue, 23 Feb 2016 16:00:39 +0800 Subject: [PATCH] FIX: N+1 query on topics view page. --- lib/freedom_patches/translate_accelerator.rb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/freedom_patches/translate_accelerator.rb b/lib/freedom_patches/translate_accelerator.rb index 517357d5919..4b41a24c271 100644 --- a/lib/freedom_patches/translate_accelerator.rb +++ b/lib/freedom_patches/translate_accelerator.rb @@ -106,13 +106,19 @@ module I18n by_site = @overrides_by_site[site] - unless by_site && by_site.has_key?(locale) + if by_site.nil? || !by_site.has_key?(locale) by_site = @overrides_by_site[site] = {} # Load overrides - TranslationOverride.where(locale: locale).pluck(:translation_key, :value).each do |tuple| - by_locale = by_site[locale] ||= {} - by_locale[tuple[0]] = tuple[1] + translations_overrides = TranslationOverride.where(locale: locale).pluck(:translation_key, :value) + + if translations_overrides.empty? + by_site[locale] = {} + else + translations_overrides.each do |tuple| + by_locale = by_site[locale] ||= {} + by_locale[tuple[0]] = tuple[1] + end end end