«Неверный тег» — вероятно, из-за неуказанного плагина

С одним тегом всё работает отлично, но с несколькими иногда пользователи не могут опубликовать пост и получают сообщение об ошибке.

Позже вы можете отредактировать пост и добавить сколько угодно тегов, и иногда публикация проходит успешно.

Есть ли в бэкенде настройка, которую мне нужно изменить? Возможно, из-за нестабильной работы пользователи не могут создать более одного тега одновременно или создать новый тег, если уже существуют другие.

Сталкивался ли кто-то ещё с такой проблемой?

Вы используете плагин «Билеты» или группы тегов? У меня такое случается, когда я пытаюсь использовать тег билета в другом месте.

Есть ли у вас какие-либо настройки категорий, связанные с тегами? Найдены ли какие-либо общие черты у тегов, вызывающих ошибки? Если вы можете воспроизвести проблему, пробовали ли вы посмотреть логи или консоль разработчика? Возникает ли это в безопасном режиме?

Спасибо за ваш ответ. Я не использую ни один из этих плагинов.

На сайте есть несколько идентичных повторяющихся тегов, что, похоже, вызывает проблему, но только в сочетании с другими тегами. Оба тега ‘web-dev’ идентичны.

Вот код ошибки в консоли:

POST Public Happiness 422

Как вы создали два тега «web-dev»? :thinking:

Я тоже хотел бы это знать, Нил :upside_down_face:

Обычно я создаю их при создании поста.

У меня есть несколько плагинов, которые используют теги, и ни один из них не определяет ‘web-dev’ как тег, хотя возможно, что они делали это в прошлом. Наш компонент ссылок меню использует ‘web-developers’.

Привет, Энди! Черт, извини, что всё так сложно. Ссылка на страницу тегов твоего сайта Public Happiness немного помогает, мне кажется — там, как видишь, много странностей: нет групп тегов, что уже полезно знать. Если отсортировать теги по имени (в алфавитном порядке), то после буквы D появятся пустые теги — это очень странно и указывает на более серьёзную проблему.

Можешь подтвердить, что ты видишь ту же проблему в безопасном режиме, когда включены только официальные плагины и отключены любые кастомизации темы?

Пересобирал ли ты экземпляр после удаления или закомментирования в файле app.yml неофициальных плагинов тегов, которые тебе не нужны? Возможно, они всё ещё оказывают влияние.

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

Помимо всего вышеперечисленного… если бы я был на твоём месте, я бы начал с «садоводства» тегов :slight_smile: Обычно не стоит иметь слишком много тегов, и уж точно не нужно создавать теги, которые, скорее всего, будут использоваться только один раз. Ты можешь удалять и объединять теги через страницу тегов. Я бы рекомендовал удалить теги, которые дублируются, или объединить их с новым временным тегом, убедиться, что оригиналы удалены, а затем переименовать временный тег обратно в нужный тебе.

Ожидается, что любой интерфейс, использующий имена тегов, будет вести себя непредсказуемо в этой ситуации. Вам потребуется использовать консоль Rails для удаления всех дублирующихся записей тегов, а также тегов с пустым именем. После этого необходимо проверить используемые вами плагины на наличие ошибок, вызывающих эти проблемы. Кроме того, в таблице тегов, вероятно, отсутствуют индексы, предотвращающие дублирование имён тегов.

@syl, похоже ли это на ошибку Docuss, учитывая, что теги ведут себя нестандартно? У меня есть опция удаления неиспользуемых тегов, и примерно половина из них — теги Docuss. Остальные, похоже, относятся к удалённым постам. (Пустые теги не включены).

@Andy02:

  1. Пустые теги на странице /tags вызваны плагином Docuss. Я только что добавил раздел в документации, объясняющий причину. Как администратор, вы можете использовать Alt+a, чтобы отобразить пустые теги и легче устранить вашу проблему.

  2. Я не считаю, что Docuss имеет какое-либо отношение к дублированию тегов или сообщению «Tag is Invalid» (Недопустимый тег). Пожалуйста, отключите Docuss и проверьте, исчезнет ли сообщение «Tag is Invalid». Если это произойдет, не стесняйтесь создать запрос в репозитории Docuss.

Это проясняет ситуацию со скрытыми/пустыми тегами. Проблема всё ещё сохраняется, значит, причина в чём-то другом. Я всё ещё разбираюсь.

Хорошо, я не могу точно сказать, что вызвало проблему, но вот что я пока обнаружил.

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

Чтобы исправить это, я искал дублирующиеся теги и менял их на другие (например, ‘web-dev’ на ‘webdev’).

Я заметил, что некоторые теги помечены как посты в разделе тегов, но не отображаются в списке. Таким образом, сайт сообщает, что у меня осталось 12 тегов ‘web-dev’, но функция поиска не может их найти.

Во многих постах в поле ввода тегов присутствуют идентичные теги, и при удалении одного удаляется и другой.

Мое лучшее предположение на данный момент заключается в том, что проблемные теги также добавляются как ссылки внутри самого поста. То есть, когда кто-то вводит #web-dev в теле поста, создается тег, и если этот тег уже есть в заголовке поста, возникает дубликат.

Я попробую специально вызвать эту ситуацию, чтобы наблюдать за ней.

Однако происходит что-то ещё: если посмотреть результаты этого поиска, то в верхнем посте нет ‘web-dev’, так как я уже изменил его, но функция поиска всё ещё находит его где-то там.

Редактирование: игнорируйте последнюю часть, поиск просто был слишком умным. Тот же поиск с кавычками вокруг " web-dev " убирает ложные срабатывания.

…но раздел «Предлагаемые темы» всё ещё находит теги, которые «поиск» не видит:

Обновление: всё ещё ведёт себя странно. Единственный повторяющийся тег, который я могу найти, — web-dev. Я удалил все теги, которые смог найти я или строка поиска. Теперь, если я создаю пост с этим тегом, он публикуется, а не выдаёт сообщение об ошибке «неверно». При клике на тег web-dev, чтобы попытаться найти остальные три тега, которые система сообщает, что где-то на форуме, возникает ошибка 404. Я не уверен, находятся ли они в постах или это какой-то «призрак» в базе данных.

Вот тестовый пост, который я создал с тегом web-dev, который я кропотливо удалил с нашего форума. На данном этапе нужно ли мне каким-то образом удалить этот тег напрямую из базы данных? (Я не вижу других тегов, вызывающих проблемы).

Хорошо, похоже, проблема решена — достаточно было просто обойти наш сайт, удалить тег ‘web-dev’, а затем воспользоваться инструментом «Удалить неиспользуемые теги».

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

Я отредактировал заголовок, который вы редактировали. Не уверен, какой плагин стал причиной. На самом деле, единственное, что я могу с высокой долей вероятности исключить, — это Docuss, так как автор заглянул, проверил, не их ли код виноват, и решил, что нет.