Привет, друзья. Мне нужно создать 93 группы на форуме. Я быстро начал добавлять группы. Затем, когда я создал группу и перешёл по ссылке на неё, появилась ошибка 404. Теперь эта группа отображается на странице групп, но при клике на неё снова возникает ошибка 404. Я не могу её удалить. При попытке создать новую группу появляется ошибка 500. Я установил Discourse, следуя официальной документации. Я использую Amazon CloudFront и S3.
Привет, meikici ![]()
Как называется ваша группа (слаг)? Какие языки используются на вашем форуме Discourse?
Вы создавали группы вручную через интерфейс?
Возникают ли у вас другие проблемы, помимо создания групп?
Сохраняется ли проблема при использовании безопасного режима?
Привет, @Canapin ![]()
Мой форум на турецком языке. Есть группа с турецким символом в слэге. Однако, поскольку в URL активно используются символы ASCII, это не является проблемой. Уже существуют другие группы, содержащие турецкие символы. Моя проблема сейчас заключается в следующем: у меня есть две группы, которые на странице групп возвращают ошибку 404, и я хочу их удалить. Как это сделать?
Проблем, кроме группировки, нет. На самом деле я могу создавать группы прямо сейчас.
Каковы названия и слаг-имена групп, которые не работают? Есть ли ошибки в логах?
Вы можете удалить их в Rails примерно так.
cd /var/discourse
./launcher enter app
rails c
g=Group.find(123)
g.destroy
Да, в логах зафиксирована ошибка, возникшая при работе с одной из двух групп.
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_groups_on_name" DETAIL: Key (name)=(İstanbul) already exists. ) app/controll
Ваша проблема немного напоминает эту с названиями категорий:
Не уверен, что они связаны, но, возможно, стоит посмотреть.
Я изменил метод кодировки символов, но всё равно получаю ошибку 404.
Можете зайти в консоль Rails и выполнить Group.pluck(:id, :name), чтобы получить названия и ID групп, и посмотреть, нет ли каких-либо аномалий?
Или используйте SELECT id, name FROM groups в Data Explorer.
С помощью этого метода мне удалось удалить одну из двух групп, возвращающих ошибку 404, но одна всё ещё остаётся. Я не знаю ID этой группы и не могу её найти.
Как найти ID группы, которая возвращает ошибку 404?
Вы пробовали это?
Хорошо это слышать. ![]()
Было бы интересно узнать, как так вышло, что появились дубликаты названий групп (если это была проблема).
Они должны быть уникальными, и с помощью команд Rails их даже нельзя переименовать в уже существующие.
Вы ничего не помните, что могло к этому привести?
Возможно, вы создали группы с похожими названиями, и после удаления специальных символов система попыталась создать две группы с одинаковым слагом? Если это так, то это ошибка. Если вы сможете описать, как её воспроизвести, есть шанс, что её удастся исправить.
Я пытался воспроизвести что-то подобное, но название группы (которое, насколько я знаю, является слагом) должно быть установлено до создания группы:

И «должно содержать только цифры, буквы, дефисы, точки и подчеркивания».
Разрешённые символы юникода для имени пользователя не влияют на название группы, как и язык интерфейса.
![]()
По результатам тестирования на другом форуме я не уверен, на что именно влияет эта настройка, но включение имён пользователей с символами юникода действительно позволяет использовать символы юникода в названиях групп. Не могло ли это стать причиной данной проблемы?
В названиях групп, которые я создал ранее, были символы Unicode, и слаг автоматически их исправлял. В группах, созданных позже, я заметил, что этого не произошло.
Нет, не припоминаю. Я был слишком занят быстрой добавлением групп ![]()
Да, всё верно. Я учёл это при создании группы.