diff --git a/app/models/category.rb b/app/models/category.rb index 40f5791090bd7a..a6c5deb48855cf 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -285,6 +285,7 @@ def ensure_slug if slug.present? # santized custom slug + slug = SiteSetting.slug_generation_method == 'encoded' ? CGI.unescape(self.slug) : self.slug self.slug = Slug.sanitize(slug) errors.add(:slug, 'is already in use') if duplicate_slug? else diff --git a/spec/models/category_spec.rb b/spec/models/category_spec.rb index 225b87eeab7aea..fdf2b7a9e529d8 100644 --- a/spec/models/category_spec.rb +++ b/spec/models/category_spec.rb @@ -316,6 +316,12 @@ expect(@category.slug).to eq("%E6%B5%8B%E8%AF%95") expect(@category.slug_for_url).to eq("%E6%B5%8B%E8%AF%95") end + + it "keeps the slug" do + @category.save + expect(@category.slug).to eq("%E6%B5%8B%E8%AF%95") + expect(@category.slug_for_url).to eq("%E6%B5%8B%E8%AF%95") + end end end