From 93a7cb6c0f60cc71cfbcdc95c9a6b321f8973633 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 18 Oct 2018 00:31:51 +0200 Subject: [PATCH] Simplify code checking whether to enable a locale --- app/helpers/globalize_helper.rb | 9 +++++---- app/models/concerns/globalizable.rb | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/helpers/globalize_helper.rb b/app/helpers/globalize_helper.rb index 07cf220b1..575e81c8e 100644 --- a/app/helpers/globalize_helper.rb +++ b/app/helpers/globalize_helper.rb @@ -32,10 +32,11 @@ module GlobalizeHelper end def enable_locale?(resource, locale) - # Use `map` instead of `pluck` in order to keep the `params` sent - # by the browser when there's invalid data - (resource.translations.blank? && locale == I18n.locale) || - resource.translations.reject(&:_destroy).map(&:locale).include?(locale) + if resource.translations.any? + resource.locales_not_marked_for_destruction.include?(locale) + else + locale == I18n.locale + end end def highlight_class(resource, locale) diff --git a/app/models/concerns/globalizable.rb b/app/models/concerns/globalizable.rb index b07112dfa..386047f8b 100644 --- a/app/models/concerns/globalizable.rb +++ b/app/models/concerns/globalizable.rb @@ -4,6 +4,10 @@ module Globalizable included do globalize_accessors accepts_nested_attributes_for :translations, allow_destroy: true + + def locales_not_marked_for_destruction + translations.reject(&:_destroy).map(&:locale) + end end class_methods do