Невозможно удалить тег с 2k темами

Я думаю, что есть два способа удалить эти теги из связанных с ними тем в консоли Rails: один из них «мягче», чем другой. Хорошей идеей будет сначала сделать резервную копию — см. здесь о выполнении команд Rails: Administrative Bulk Operations.


  1. Для каждого тега войдите в консоль Rails:
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. После этого вы сможете удалить эти теги через интерфейс

Альтернативный более быстрый, но рискованный метод (я бы сам выбрал первый способ)

Вместо шагов 2 и 4, я думаю, можно также сделать следующее для каждого тега после входа в консоль Rails.

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