새 주제가 기본값으로 미분류로 설정되지 않음

안녕하세요,

내 사용자 중 한 명(역할: ‘leader’)이 새 주제를 생성하려고 할 때 카테고리가 비어 있고, 주제 생성 버튼을 클릭하면 404 오류가 발생합니다:

저(스태프)가 새 주제를 생성하려고 해도 여전히 카테고리가 비어 있으며, You supplied invalid parameters to the request: category라는 오류가 발생합니다.

다음과 같은 설정을 발견했습니다:

카테고리가 없는 주제 생성 허용. 경고: 카테고리 없는 주제가 있는 경우, 이 설정을 끄기 전에 해당 주제에 카테고리를 다시 지정해야 합니다.

이 설정을 활성화한 기억은 없는데 활성화되어 있습니다. 기본 설정인 것 같지만 확신은 없습니다.

미분류(Uncategorised) 카테고리 설정을 확인해 보았습니다:

이 카테고리는 특수합니다. 카테고리가 선택되지 않은 새 주제의 기본 카테고리로 사용됩니다. 이 동작을 방지하고 카테고리 선택을 강제하려면 여기서 설정을 비활성화하십시오. 이름이나 설명을 변경하려면 커스터마이즈 / 텍스트 콘텐츠로 이동하십시오.

단기적으로 사용자가 나쁜 경험을 하고 게시물을 작성하지 못하는 것(404 오류)이 우려됩니다.

질문에 대한 답변을 찾기 위해 meta.discourse.org를 검색해 보았습니다:

질문 1: 새 주제를 생성하려고 할 때 카테고리 필드가 왜 비어 있나요? (meta.discourse.org에 게시물을 작성할 때는 비어 있지 않습니다)

**질문 2: '카테고리가 없는 주제 생성 허용’이 활성화되어 있는데 왜 오류가 발생하나요? (‘Uncategorised’가 실제로는 ‘카테고리 없음’을 의미한다고 추측하지만, *’[…]카테고리가 선택되지 않은 새 주제의 기본 카테고리’*로 설명되어 있습니다.)

실제로 저는 meta.discourse.org의 동작 방식을 좋아합니다. 여기서 기본값이 ‘Uncategorised’ 대신 'general’로 설정되어 있는데, 어떤 접근 방식이 올바른지 확신이 서지 않습니다:

a) 'Uncategorised’를 'general’로 이름 변경. (참고: 2016년에 작성된 게시물에서 이것이 나쁜 아이디어라고 지적했으며, 데이터베이스에서 'Uncategorised’를 'null’과 동일시했습니다.)

또는

b) ‘general’ 카테고리를 생성하고, 모든 미분류 주제를 'general’로 이동(방법은?), 새 게시물의 기본값으로 'general’을 설정하고, *‘카테고리가 없는 주제 생성 허용’*을 비활성화하기.

어떤 조언이나 관련 문서에 대한 안내도 감사하겠습니다.

감사합니다.

Stephen

P.S. 참고로 우리는 OSS 프로젝트이며, 이는 discourse.org의 친절한 분들이 제공해 준 무료 discourse 인스턴스입니다.

저도 이 문제를 확인했습니다. 하지만 미분류 카테고리를 비활성화했는데도, 해당 경우에는 상위 카테고리가 선택되어야 합니다. 그런데 기본값으로 같은 (빈) 카테고리 필드가 표시되고 있습니다.

1개의 좋아요

@MarcP님 감사합니다!

이것은 버그일 수도 있지만, 미리 판단하고 싶지 않았습니다.
s.

스티븐님,

사이트에서 Discourse의 어떤 버전을 사용 중이신가요?

분류되지 않은(category) 카테고리는 최근 새로운 일반 카테고리로 대체되었습니다. 사이트에 해당 이름의 새 카테고리가 나타났나요? 이전에 일반 카테고리가 있었나요?

네, 이전에 일반 카테고리가 있었습니다. 최신 빌드를 실행하고 있지만, 몇 주 전부터 이를 인지하고 있습니다.

네, 저한테도 최근 이런 현상이 일어나는 것 같습니다.

이 커밋으로 수정되었어야 하지만, 이미 해당 수정 사항이 포함된 상태로 사이트가 업데이트된 것을 확인할 수 있습니다:

모든 경우를 다루지 못했을 가능성이 있습니다. 담당자를 통해 확인해 보겠습니다. :+1:

5개의 좋아요

음, allow uncategorized topics를 활성화하면 여전히 카테고리 페이지에 분류되지 않은 카테고리가 표시됩니다. 일반 카테고리를 이름 변경한 후에도 마찬가지입니다.

Uncategorized(미분류) 카테고리는 더 이상 Discourse에서 General(일반) 카테고리가 활성화된 상태에서는 기본 사이트 설정이 아닙니다. 새로운 Discourse 설치 환경에는 기본적으로 General 카테고리가 생성됩니다. 따라서 작성기(composer)를 열면 자동으로 선택되는 카테고리가 General이 됩니다. 하지만 General 카테고리가 없는 구버전 설치 환경의 경우, 어떤 카테고리가든 일반 카테고리로 지정될 수 있다고 생각합니다. 즉, 이 경우 작성기의 기본 카테고리를 의미하는 것입니다. 따라서 단순히 General이라는 이름의 카테고리를 생성하는 것만으로는 충분하지 않습니다. 숨겨진 사이트 설정인 general_category_id에 해당 카테고리 ID를 설정해야 합니다.

예를 들어:
이러한 일반 용도로 새 카테고리를 생성한다고 가정해 보겠습니다. 카테고리 이름은 General일 수 있으며, 카테고리 ID도 확인해야 합니다. 이 예시에서는 ID가 9라고 가정합니다.

카테고리는 성공적으로 생성되었지만, 작성기를 열면 이것이 기본 카테고리로 표시되지 않습니다. 따라서 숨겨진 사이트 설정을 구성해 보겠습니다.

category_id를 일반 카테고리로 설정

참고: category_id=9는 이 예시에서만 올바른 카테고리 ID입니다. 새로 생성한 카테고리의 category_id 번호는 다를 수 있습니다.

cd /var/discourse
./launcher enter app
rails c
SiteSetting.general_category_id=9
exit
exit

이 작업을 완료한 후 작성기를 열면 category_id=9인 General 카테고리가 기본 카테고리로 설정됩니다.

2개의 좋아요

general을 이름 변경한 이후에 다시 빌드했나요?

'general’은 이름 변경하지 않았습니다. 'uncategorized’만 있고, 이것도 이름 변경하지 않았습니다.

Discourse 업데이트: 14시간 전

우리는 OSS 프로젝트이며, 이 디스코urs 인스턴스는 무료입니다(https://www.discourse.org의 친절한 분들이 제공해 주셨습니다). 따라서 우리의 개입 없이 자동으로 업그레이드가 이루어집니다.

카테고리가 여전히 빈칸으로 표시됩니다

@Don

감사합니다. 저는 호스팅 인스턴스를 사용 중이라 셸 접근 권한을 얻어 숨겨진 사이트 설정을 변경할 방법을 모르고 있습니다.

감사합니다.

Stephen

1개의 좋아요

팀원 대부분에게는 주말이지만, 누군가 가능해지면 최대한 빨리 처리해 드리겠습니다. :slightly_smiling_face::+1:

4개의 좋아요

최종 사용자에게 불편을 최소화하기 위해 확인하고 싶은 부분이 있습니다:

  1. 사전에 ‘일반’ 카테고리를 만들어 두어야 하나요?

  2. 설정 변경이 완료된 후, ‘분류되지 않음’ 카테고리의 모든 주제를 ‘일반’ 카테고리로 이동해야 하나요?

도와주셔서 감사합니다.

Stephen

#uncategorized 대신 이 결과를 기본값으로 원하신다면, 새로운 #general 카테고리를 생성한 후 벌크 도구(bulk tool)를 사용하여 모든 #uncategorized 토픽을 해당 카테고리로 이동하고, 준비를 위해 관리자 설정에서 allow uncategorized topics(미분류 토픽 허용)을 비활성화하시면 안전합니다(다만 드롭다운 문제는 해결되지 않습니다).

하지만 팀 멤버가 숨겨진 general_category_id 설정을 수동으로 업데이트하는 작업과 함께 몇 분 만에 해결해 줄 수 있으므로, 기다리시는 것이 더 나을 수도 있습니다. :slightly_smiling_face:

4개의 좋아요

감사합니다. 설명이 아주 잘 되어 있어서 해결했습니다. 이건 버그가 아니므로 Support 채널로 옮기는 게 좋을 것 같고, 답변을 해결책으로 표시하는 것을 제안합니다.

1개의 좋아요

정확히 이해하기 위해

  • 새 Discourse 인스턴스는 새 주제를 게시할 때 기본값으로 사용되는 General(일반) 카테고리를 가지고 있습니다.

  • 저희 인스턴스는 기본값이 ‘uncategorised(분류되지 않음)’ 카테고리가던 시기의 것입니다.

해결 방법은 SiteSetting.general_category_id를 Uncategorised(분류되지 않음) 카테고리 ID로 설정하는 것입니다.

다음 명령어:

SiteSetting.general_category_id=<new category id>

  • 여전히 Uncategorised(분류되지 않음) 카테고리를 가진 인스턴스는 업그레이드 시 위의 설정을 적용해야 합니다
1개의 좋아요

모든 문제가 해결되었습니다. 'General’을 미분류 대신 사용하도록 변경했고, 시스템이 기본 카테고리를 올바르게 제공합니다.

이 문제를 진단하는 데 도움을 주신 모든 분들께 감사드리며, 특히 @fzngagan님께는 이렇게 빠르고 전문적으로 해결해 주셔서 감사드립니다.

감사합니다

스티븐

5개의 좋아요

이 수정 사항 이전에 시드된 General 카테고리를 수동으로 삭제하신 분들을 위해

SiteSetting.general_category_id가 존재하지 않는 카테고리로 설정된 경우 이를 정리하는 추가 수정 사항이 적용되었습니다:

3개의 좋아요