Недавно после обновления до последней версии две из моих категорий указывают на одну и ту же (например, у вас есть Категория 1 и Категория 2, и обе показывают содержимое Категории 1). Это поведение уже довольно странное, поэтому, пытаясь «разобраться», я попытался изменить настройки Категории 2, которая отображала неправильные сообщения. Изменения не сохранялись, несмотря на множество попыток.
Однако я попробовал изменить URL категории на что-то другое, чтобы проверить, заставит ли это систему перезагрузиться. Теперь при клике на категорию Discourse просто зависает в состоянии перезагрузки, не обновляя URL на адрес этой категории. Таким образом, если я что-то упускаю, теперь я не могу редактировать категорию, поскольку, насколько я понимаю, для редактирования нужно зайти в неё.
Мы уже пересобрали наш экземпляр и сделали всё возможное, но ничего не изменилось. Есть ли у кого-нибудь предложения, что делать?
Посмотрите, может быть, на постоянные ссылки? Постоянная ссылка создается при переименовании категории. Возможно, именно это вызывает проблему (хотя, думаю, если бы дело было в этом, это было бы очевидно, но других идей у меня нет).
Действительно, для категории существует постоянная ссылка, но у меня по-прежнему наблюдается то же странное поведение.
Пока я экспериментировал с постоянными ссылками, я, кажется, понял проблему: у «Категории 1» обычное имя (например, «Категория»), а у «Категории 2» имя-число (например, «11»). Похоже, происходит следующее: поскольку у «Категории 1» идентификатор категории (Category ID) совпадает с числовым именем «Категории 2», всё идёт не так.
Поскольку я изменил имя на большее число просто для теста (с «11» на «111»), страница застряла в состоянии загрузки… Возможно, это потому, что система ищет идентификатор категории «111»? Кто-нибудь может подтвердить, что такое возможно?
Добавил постоянные ссылки как для старого (“11”), так и для нового (“111”) названия. Эффекта нет, страница продолжает загружаться (пришлось угадывать ID категории, не знаю, есть ли способ его где-то проверить).
Хочу добавить, что затронутая категория является подкатегорией (упоминаю это, так как, глядя на URL, не знаю, влияет ли это на вывод). То есть это что-то вроде /c/ParentCategory/111.
Есть ли способ управлять категорией, если у вас нет к ней доступа? Например, попытаться изменить URL или что-то в этом роде?
Пытался пробовать разные варианты в рамках своих ограниченных знаний. Если кто-то не подскажет, как редактировать категорию, не заходя в неё, у меня больше идей нет… Есть ли способ «переместить» все темы из одной категории в другую?
Поскольку я, похоже, не могу решить это самостоятельно, возможно, для улучшения удобства использования можно переместить её в другую категорию, а «зомби-категорию» оставить до тех пор, пока кто-нибудь не придумает что-то лучшее (потому что, насколько я помню, удалить категорию, не заходя в неё, нельзя, поэтому она останется в списке пустой).
Сделайте резервную копию вашего сайта перед выполнением команд!
cd /var/discourse
./launcher enter app
rails c
Category.find_by_slug('SLUG-ИСХОДНОЙ-КАТЕГОРИИ').id
Category.find_by_slug('SLUG-КАТЕГОРИИ-НАЗНАЧЕНИЯ').id
exit
Замените SLUG-ИСХОДНОЙ-КАТЕГОРИИ и SLUG-КАТЕГОРИИ-НАЗНАЧЕНИЯ на соответствующие slugs исходной и целевой категорий. В результате вы получите два ID.
Извините за поздний ответ. Я протестировал, выполнил указанные шаги и решил свою проблему. Большое спасибо за вашу помощь.
Я хотел бы как-то отплатить (хотя мои навыки программирования не очень хороши). Есть ли возможность добавить проверку, чтобы категории не могли быть числами? Хотел бы помочь с этим.
Спасибо, но наши инженеры уже подготовили исправление, которое предотвращает вставку цифр в слайги категорий. Как вы заметили, сейчас использование «11» в качестве названия категории допустимо, однако слайг категории необходимо изменить на такой, который не начинается с цифры, например cat-11.