FIX: Don't leave blank additional_tag_ids param after removing dups in intersection (#34423)

My previous fix would leave behind a blank `additional_tag_ids=` query param when redirecting to /tag if all additional_tags in the intersection route were removed due to being duplicates. With this fix the additional_tag_ids param is removed if it ends up being cleared during the duplicate check
This commit is contained in:
Chris Alberti
2025-08-19 15:14:29 -05:00
committed by GitHub
parent b421a3bab6
commit 015da9ba79
2 changed files with 9 additions and 1 deletions
+6 -1
View File
@@ -166,7 +166,12 @@ class TagsController < ::ApplicationController
additional_tags_trimmed = additional_tags_trimmed&.uniq
if additional_tags_trimmed != @additional_tags
params[:additional_tag_ids] = additional_tags_trimmed&.join("/")
if additional_tags_trimmed.present?
params[:additional_tag_ids] = additional_tags_trimmed&.join("/")
else
params[:additional_tag_ids] = nil
end
return redirect_to url_for(params.to_unsafe_hash)
end
end
+3
View File
@@ -38,6 +38,9 @@ describe "Tags intersection", type: :system do
visit("/tags/intersection/sour/tangy/sour/sour")
expect(page).to have_current_path("/tags/intersection/sour/tangy")
visit("/tags/intersection/sour/sour")
expect(page).to have_current_path("/tag/sour")
end
it "removes duplicates from the additional tags list" do