Я занимаюсь чисткой тегов, и до этого у меня не возникало проблем, пока не появился тег с 2400 темами. Выдается общая ошибка: «Извините, произошла ошибка», но в логах ничего нет. Можно ли удалить его через бэкенд или есть что-то ещё, что можно попробовать? В нём нет специальных символов, это просто ig.
Должна быть возможность удалить его через консоль Rails, но вы можете сначала попробовать массово удалить его из групп тем, чтобы сделать это более аккуратно через интерфейс?
Я думаю, что есть два способа удалить эти теги из связанных с ними тем в консоли Rails: один из них «мягче», чем другой. Хорошей идеей будет сначала сделать резервную копию — см. здесь о выполнении команд Rails: Administrative Bulk Operations.
Для каждого тега войдите в консоль Rails:
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
Повторите для второго тега
После этого вы сможете удалить эти теги через интерфейс
Альтернативный более быстрый, но рискованный метод (я бы сам выбрал первый способ)
Вместо шагов 2 и 4, я думаю, можно также сделать следующее для каждого тега после входа в консоль Rails.