Rails 콘솔에서 채팅 채널에 연결된 카테고리를 변경하는 방법?

Discourse 커뮤니티 여러분,

UI에서 채팅 채널에 연결된 카테고리를 변경할 수 없습니다. 채팅을 다른 카테고리로 이동해야 합니다.

Rails 콘솔을 통해 이 작업이 가능한지, 아니면 무언가 문제가 생기는지 궁금합니다.

해결 방법이나 경험담이 있다면 알려주시면 감사하겠습니다.

업데이트:
해결 방법을 알아냈고, 누군가에게 도움이 될 수 있을 것 같아 여기에 공유합니다.

주의사항:
서버에 접근할 수 있어야 하며, 무엇을 하고 있는지 이해하는 것이 도움이 됩니다. 그렇지 않다면 서버와 Ruby on Rails에 대해 잘 아는 사람에게 도움을 구하는 것을 권장합니다.
또한 주의하세요: 실행 중인 데이터베이스의 데이터를 변경하면 문제가 발생할 수 있습니다.

단계:
먼저 서버에 접근합니다. 접속한 후 root 사용자로 전환하세요. Discourse 컨테이너로 이동하여 컨테이너에 진입합니다:

cd /var/discourse
./launcher enter app

컨테이너 내부에서 Rails 콘솔을 엽니다:

rails c

이제 브라우저에서 채팅 채널 슬러그(slug)를 찾으세요. URL에서 찾을 수 있습니다. 예를 들어 채팅 채널을 전체 화면 모드로 열었을 때:
https://my-example-forum.com/chat/c/cat-pictures/17

Rails 콘솔에서 원하는 채팅 채널 객체를 가져와 변수에 저장합니다:

chat = Chat::Channel.find_by(slug: "cat-pictures")

이제 변수 chat만 입력하고 엔터를 누르면 객체와 모든 속성을 볼 수 있습니다. 그 중 하나가 chatable_id입니다. 여기서 채팅 채널이 연결된 카테고리의 ID를 볼 수 있습니다. 예를 들어 chatable_id가 5로 설정되어 있을 수 있습니다.

이 chatable_id를 채팅 채널이 대응하도록 원하는 카테고리의 ID로 변경할 수 있습니다. 이 ID는 브라우저에서 카테고리의 URL에서 찾을 수 있습니다:
https://my-example-forum.com/c/cats/9

이제 원하는 카테고리 ID를 알았으므로 채팅 채널에 연결된 카테고리를 조정할 수 있습니다:

chat.chatable_id=9
chat.save

도움이 되기를 바랍니다.


How change a Chat Channel's category that it's linked to 와도 관련이 있을 수 있습니다.