Просмотр исходного кода

Fixes #4554 - Can not delete language in the knowledge base

Mantas 1 год назад
Родитель
Сommit
eb83313df5
2 измененных файлов с 14 добавлено и 1 удалено
  1. 3 1
      app/models/knowledge_base/answer.rb
  2. 11 0
      spec/models/knowledge_base/locale_spec.rb

+ 3 - 1
app/models/knowledge_base/answer.rb

@@ -103,7 +103,9 @@ class KnowledgeBase::Answer < ApplicationModel
   private
 
   def touch_translations
-    translations.each(&:touch) # move to #touch_all when migrationg to Rails 6
+    translations
+      .reject(&:destroyed?)
+      .each(&:touch) # touch each translation separately to trigger after_commit callbacks
   end
   after_touch :touch_translations
 

+ 11 - 0
spec/models/knowledge_base/locale_spec.rb

@@ -7,4 +7,15 @@ RSpec.describe KnowledgeBase::Locale, type: :model do
   subject { create(:knowledge_base_locale) }
 
   include_context 'factory'
+
+  describe 'destroying' do
+    include_context 'basic Knowledge Base'
+
+    it 'destroys locale' do
+      published_answer # populate locale
+
+      expect { primary_locale.destroy! }
+        .not_to raise_error
+    end
+  end
 end