diff --git a/app/models/category.rb b/app/models/category.rb index 40f5791090b..a6c5deb4885 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -285,6 +285,7 @@ class Category < ActiveRecord::Base 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 225b87eeab7..fdf2b7a9e52 100644 --- a/spec/models/category_spec.rb +++ b/spec/models/category_spec.rb @@ -316,6 +316,12 @@ describe Category do 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