ID가 존재하는 경우 작성기에서 숫자 태그가 실패하는 이유는 무엇인가요?

숫자 태그, 예를 들어 2026을 만들려고 하면, 해당 ID 2026을 사용하는 태그가 없다면 정상적으로 생성됩니다. 하지만 그 ID가 이미 사용 중이라면 2026 대신 기존 태그가 반환됩니다.

이것은 어느 시점에 수정된 오래된 버그라고 확신합니다. 아니면 제가 잘못 기억하고 있는 건가요? 아예 숫자 태그를 사용하지 않는 것이 맞는 걸까요? :thinking:

어쨌든 저는 이것을 버그로 간주합니다 — 그리고 연도를 태그로 사용하고 싶습니다.

숫자 태그가 지원되어야 하며, 현재 정준 URL 형식은 이러한 모호성을 피하기 위해 설계되었습니다.

예를 들어, 태그 이름이 2026이고 해당 태그 ID가 3이라면, 정준 URL은 다음과 같아야 합니다:

/tag/2026/3

모호한 형식은 이전/레거시 URL입니다:

/tag/2026

이것은 “ID가 2026인 태그”로 해석될 수 있으므로, 다른 태그에 그 ID가 할당되어 있으면 2026이라는 이름의 태그가 아니라 그 다른 태그로 해석될 수 있습니다.


어디서 태그를 사용하거나 접근하려고 하시나요? 링크가 Discourse 자체에 의해 생성된 것이라면, /tag/:slug/:id 정준 URL을 사용할 것으로 예상됩니다. 하지만 URL을 수동으로 입력하거나, 이전에 저장된 오래된 링크, 커스텀 테마/플러그인 링크, 또는 가져오기/사이드바/커스텀 URL을 사용하고 있다면 여전히 모호한 레거시 형식을 사용하여 잘못된 태그로 해석될 수 있습니다.

가능하다면, /tag/:foo:foo를 항상 슬러그(slug)로 취급하고, ID를 사용할 때는 /tag/:foo/:id 형식을 요구하는 것이 좋다고 생각합니다. 여기서 :foo는 아무 문자나 사용할 수 있으며(예: 알 수 없거나 중요하지 않을 경우 - 사용), ID는 슬러그가 이미 알려져 있지만 ID는 모르는 경우에 유용합니다. 이는 태그와 같이 이름이 일반적으로 사용되는 참조인 경우가 많기 때문입니다.

ID는 현재 주로 현지화(localization)를 지원하기 위해 존재합니다.

1개의 좋아요

보통 주제를 만들고 태그를 추가할 때입니다. 아니면 단순히 태그를 추가할 때라고 해야 할까요?

실제 사례를 들어볼게요.

주제를 작성할 때 2013이라는 태그를 생성하려고 했습니다. 하지만 /tag/sahara/2013이므로 sahara가 반환되었습니다.

그리고 전에 물었던 것처럼 :smirking_face: 네, 안전 모드에서도 동일한 문제가 발생합니다.

즉,

맞습니다. 그리고 얼마 전까지만 해도 실제로 그런 상황이었습니다.

2개의 좋아요

구체적인 예시를 제공해 주셔서 감사합니다. 문제를 재현했고, 수정 작업을 진행 중입니다.

테스트를 하던 중, 해당 ID가 없는 경우에도 숫자 태그가 생성되지 않는다는 사실을 알게 되었습니다. (예: 태그 2939858339를 생성하려고 하면 아무 동작도 하지 않고, 주제에 태그가 붙지 않습니다)

2개의 좋아요

Jagster님, 수정 사항이 latest에 병합되었습니다. 기회가 되면 테스트해 보시고, 기대에 부응하는지 알려주세요.

1개의 좋아요

예상대로 작동합니다!

감사합니다 :folded_hands:

1개의 좋아요