From 9d627f2db99e5cf8823a10b468c9829f9c02caf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 22 Sep 2019 00:14:13 +0200 Subject: [PATCH] Remove redundant I18nContent scope Since two records cannot have the same key, having a scope that will always return just one record is the same as using `find_by_key`. --- app/models/i18n_content.rb | 3 --- config/initializers/i18n_translation.rb | 2 +- spec/models/i18n_content_spec.rb | 15 --------------- 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/app/models/i18n_content.rb b/app/models/i18n_content.rb index 79a04b20a..163f9329a 100644 --- a/app/models/i18n_content.rb +++ b/app/models/i18n_content.rb @@ -1,7 +1,4 @@ class I18nContent < ApplicationRecord - - scope :by_key, ->(key) { where(key: key) } - validates :key, uniqueness: true translates :value, touch: true diff --git a/config/initializers/i18n_translation.rb b/config/initializers/i18n_translation.rb index fb23270cd..aa500468c 100644 --- a/config/initializers/i18n_translation.rb +++ b/config/initializers/i18n_translation.rb @@ -9,7 +9,7 @@ module ActionView def t(key, options = {}) current_locale = options[:locale].presence || I18n.locale - i18_content = I18nContent.by_key(key).first + i18_content = I18nContent.find_by_key(key) translation = I18nContentTranslation.where(i18n_content_id: i18_content&.id, locale: current_locale).first&.value translation.presence || translate(key, options) diff --git a/spec/models/i18n_content_spec.rb b/spec/models/i18n_content_spec.rb index 974218605..aade19cfc 100644 --- a/spec/models/i18n_content_spec.rb +++ b/spec/models/i18n_content_spec.rb @@ -14,21 +14,6 @@ RSpec.describe I18nContent, type: :model do expect(i18n_content.errors.size).to eq(1) end - context "Scopes" do - it "return one record when #by_key is used" do - content = create(:i18n_content) - key = "debates.form.debate_title" - debate_title = create(:i18n_content, key: key) - - expect(I18nContent.all.size).to eq(2) - - query = I18nContent.by_key(key) - - expect(query.size).to eq(1) - expect(query).to eq([debate_title]) - end - end - context "Globalize" do it "translates key into multiple languages" do key = "devise_views.mailer.confirmation_instructions.welcome"