Я пытаюсь удалить некоторые категории в пользу использования тегов, но в результате у меня остаётся одна созданная системой тема, которую я не могу удалить (на скриншоте это «Technical», обратите внимание на «-1 ответ»). Если я пытаюсь открыть эту тему, страница зависает, и мне приходится закрывать вкладку и начинать заново. Есть идеи, как её удалить, возможно, через Rails?
Спасибо, Даниэла, это помогло удалить тему, но теперь, когда я пытаюсь удалить категорию, система всё ещё считает, что в ней есть одна тема, и не позволяет удалить категорию. Есть ли аналогичная функция для удаления категории?
Сделайте полную резервную копию вашего сайта, а затем выполните:
cd /var/discourse
./launcher enter app
rails c
rake destroy:topics["Gear","Discussions"]
где Gear — это ваша подкатегория, а Discussions — родительская категория.
Этого должно быть достаточно, чтобы удалить все темы в этой подкатегории. После этого вы сможете удалить саму подкатегорию.
К сожалению, вот результат…
NameError: undefined local variable or method `topics' for main:Object
from (pry):1:in `__pry__'
[2] pry(main)>
Моя ошибка, попробуйте только
cd /var/discourse
./launcher enter app
rake destroy:topics["Gear","Discussions"]
«В категории discussions/gear нет тем для удаления», но я всё равно не могу удалить категорию: «Невозможно удалить эту категорию, так как количество тем равно 1».
Вы можете проверить свои логи, чтобы узнать, есть ли там конкретные ошибки?
Нет, я не вижу ничего в логах, связанного с этим…
Попробуйте обновить счетчики категорий и посмотрите, поможет ли это.
cd /var/discourse
./launcher enter app
rails c
Category.ensure_consistency!
А затем попробуйте снова удалить категорию.
К сожалению, это вернуло nil
Мне удалось сбросить количество тем с помощью
Category.find_by(name: 'Gear').update(topic_count: 0)
А затем я смог удалить категорию. Спасибо, Дэвид!
У меня это тоже вернуло nil.
Это вернуло «true», но не изменило значения -1 в столбце reply моих тем. Также я всё ещё не мог удалить категорию.
После того как я потратил на это больше времени, мне наконец удалось заставить это работать! Спасибо!

