레일즈 콘솔에서 태그를 관련 주제에서 제거하는 방법에는 두 가지가 있다고 생각하는데, 그중 하나는 다른 하나보다 “더 부드러운” 방식입니다. 먼저 백업을 하는 것이 좋습니다. 레일즈 명령어 사용법에 대해서는 여기에서 확인하세요: Administrative Bulk Operations.
- 각 태그에 대해 레일즈 콘솔에 진입합니다:
cd /var/discourse
./launcher enter app
rails c
- 태그를 찾아 해당 주제에서 제거합니다.
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
- 두 번째 태그에 대해 반복합니다.
- 이제 UI를 통해 해당 태그를 제거할 수 있어야 합니다.
더 빠르지만 위험한 대안적 방법 (저라면 위 방식으로 진행할 것입니다)
하지만 레일즈 콘솔에 진입한 후 각 태그에 대해 2단계와 4단계 대신 다음을 수행할 수도 있다고 생각합니다.
t = Tag.find_by_name('your_tag_name')
t.destroy!