주제가 2,000개 있는 태그를 삭제할 수 없습니다

태그를 정리하고 있는데, 이 태그까지는 문제가 없었습니다. 이 태그에는 2,400개의 토픽이 연결되어 있습니다. 일반적인 “죄송합니다. 오류가 발생했습니다.” 메시지가 표시되고 로그에는 아무것도 기록되지 않습니다. 백엔드에서 이 태그를 삭제할 수 있거나 다른 시도해 볼 방법이 있을까요? 특수 문자는 없고 단순히 ig입니다.

모두 감사합니다!

Rails 콘솔을 통해 삭제할 수 있어야 하지만, 먼저 UI를 통해 더 깔끔하게 처리하기 위해 토픽을 배치 단위로 일괄 삭제해 볼 수도 있습니다.

감사합니다만, 일괄 처리할 방법이 보이지 않습니다. 모든 태그를 삭제할 수는 있지만, 여러 태그가 있는 토픽에서 단일 태그만 삭제하는 옵션은 없습니다.

5818개 항목이 있는 태그와 1604개 항목이 있는 태그를 삭제하는 방법을 찾고 있습니다.
이 태그들은 Xenforo에서 가져온 것으로 더 이상 필요하지 않습니다.

레일즈 콘솔에서 태그를 관련 주제에서 제거하는 방법에는 두 가지가 있다고 생각하는데, 그중 하나는 다른 하나보다 “더 부드러운” 방식입니다. 먼저 백업을 하는 것이 좋습니다. 레일즈 명령어 사용법에 대해서는 여기에서 확인하세요: Administrative Bulk Operations.


  1. 각 태그에 대해 레일즈 콘솔에 진입합니다:
cd /var/discourse
./launcher enter app
rails c
  1. 태그를 찾아 해당 주제에서 제거합니다.
tag_name = "your_tag_name"   # 태그 이름으로 대체하세요
tag = Tag.find_by(name: tag_name)
Topic.joins(:tags).where(tags: { name: tag_name }).each do |topic|
  topic.tags.delete(tag)
  topic.save
end
  1. 두 번째 태그에 대해 반복합니다.
  2. 이제 UI를 통해 해당 태그를 제거할 수 있어야 합니다.

더 빠르지만 위험한 대안적 방법 (저라면 위 방식으로 진행할 것입니다)

하지만 레일즈 콘솔에 진입한 후 각 태그에 대해 2단계와 4단계 대신 다음을 수행할 수도 있다고 생각합니다.

t = Tag.find_by_name('your_tag_name')
t.destroy!

정말 감사합니다. 첫 번째 시도에 성공했습니다. 첫 번째 방법을 선택한 후, 더 이상 어디에도 태그가 할당되지 않았을 때 UI를 통해 태그를 삭제했습니다.