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

Я занимаюсь чисткой тегов, и до этого у меня не возникало проблем, пока не появился тег с 2400 темами. Выдается общая ошибка: «Извините, произошла ошибка», но в логах ничего нет. Можно ли удалить его через бэкенд или есть что-то ещё, что можно попробовать? В нём нет специальных символов, это просто ig.

Спасибо всем!

Должна быть возможность удалить его через консоль Rails, но вы можете сначала попробовать массово удалить его из групп тем, чтобы сделать это более аккуратно через интерфейс?

Спасибо, но я не вижу способа сделать это массово. Я могу удалить все теги, но нет опции для удаления одного тега, когда у тем несколько тегов.

Я ищу способ удалить 2 тега: в одном 5818 записей, в другом — 1604. Это теги, импортированные из XenForo, которые больше не нужны.

Я думаю, что есть два способа удалить эти теги из связанных с ними тем в консоли 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!

Огромное спасибо, всё сработало с первого раза. Я выбрал первый способ, а затем удалил теги через интерфейс, когда они больше нигде не использовались.