Skip to content

Commit 015da9b

Browse files
authored
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
1 parent b421a3b commit 015da9b

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

app/controllers/tags_controller.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,12 @@ def list
166166
additional_tags_trimmed = additional_tags_trimmed&.uniq
167167

168168
if additional_tags_trimmed != @additional_tags
169-
params[:additional_tag_ids] = additional_tags_trimmed&.join("/")
169+
if additional_tags_trimmed.present?
170+
params[:additional_tag_ids] = additional_tags_trimmed&.join("/")
171+
else
172+
params[:additional_tag_ids] = nil
173+
end
174+
170175
return redirect_to url_for(params.to_unsafe_hash)
171176
end
172177
end

spec/system/tags_intersection_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838

3939
visit("/tags/intersection/sour/tangy/sour/sour")
4040
expect(page).to have_current_path("/tags/intersection/sour/tangy")
41+
42+
visit("/tags/intersection/sour/sour")
43+
expect(page).to have_current_path("/tag/sour")
4144
end
4245

4346
it "removes duplicates from the additional tags list" do

0 commit comments

Comments
 (0)