Мы потеряли Прекрасного Джорджа (недоступная категория)

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

Симптомы

У меня есть подкатегория с полным слагом asbl:editions. У меня также есть другая подкатегория incoming:ps-editions-lesoiseaux-io. Последняя более новая.

Всякий раз, когда я пытался переместить тему в первую категорию или создать новую тему там со главной страницы и т. д., при вводе editions в списке появлялась только вторая категория, а первая — нет.

Нет записей в логах, нет ошибок в консоли: её просто нет.

Это очень раздражает, так как это очень важная категория, и мне часто нужно перемещать туда соответствующие темы.

Диагностика

Мне нужна помощь, чтобы понять, как отследить эту ошибку, так как очевидного способа сделать это нет. Затронута только эта категория.

Я пробовал:

  • удалять слаг и сохранять :slightly_frowning_face:
  • удалять слаг и сохранять в другой категории :slightly_frowning_face:
  • переименовать категорию в WTF: она снова появилась в выпадающих списках :slightly_smiling_face:
  • переименовать категорию обратно в её исходное имя (Éditions): она снова исчезла… :slightly_frowning_face:

Интересно, не проблема ли это зарезервированного слова или какая-то путаница между слагами категорий, тегами, группами… У меня нет дубликатов названий, но есть варианты: ps-editions, editions-ps и т. д., которые используют одно слово, являющееся слагом отсутствующей категории: editions. Возможно, это подсказка?

Спасибо за ваше внимательное рассмотрение.

5 лайков

Работает ли это, если назвать категорию Editions вместо Éditions? :thinking:

Возможно, на стороне сервера не хватает одного-двух вызовов unaccent, так как, насколько я понимаю, LIKE и ILIKE плохо работают с диакритическими знаками.

SELECT 'Éditions' ILIKE '%editions%'
 ?column?
----------
 f
(1 row)

А при использовании unaccent:

SELECT unaccent('Éditions') ILIKE unaccent('%editions%')
 ?column?
----------
 t
(1 row)
2 лайка

Отличная работа, @zogstrip! Значит, это ошибка в поддержке акцентных знаков. Думаю, это довольно распространённая проблема в языках, отличных от английского.

Кстати, с годовщиной использования Discourse! :slight_smile:

Спасибо :sweat_smile:

Я уже создал PR с исправлением :wink:

2 лайка

Эта тема была автоматически закрыта через 8 дней. Новые ответы больше не принимаются.