Продолжаем обсуждение из темы ActiveRecord::RecordNotUnique на idx_tag_users_ix1: Как исправить?:
Ошибка была воспроизведена. Я думаю, что я на правильном пути к тому, чтобы разобраться в этой ошибке.
Шаги для воспроизведения
-
Создайте тег #foo.
-
Ограничьте использование тега #foo только для сотрудников (Staff).
-
Создайте группу Bar.
-
Назначьте группе Bar уведомление типа «Следить» (Watching) для тега #foo.
-
Добавьте в группу Bar пользователя без привилегий.
-
Измените его личные настройки уведомлений для тега #foo на «Обычные» (Normal).
-
Пользователь без привилегий больше не сможет открывать страницу.
Я подозреваю, что происходит именно это, так как ситуация дважды повторялась с разными людьми. Вот как выглядит ошибка: https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b
Возможно, заголовок немного узок. Мне кажется, проблема связана скорее с ограничениями тегов для групп и личными уведомлениями.
У всех новых пользователей теперь есть дублирующая запись, которую необходимо удалить из консоли:
r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }
Не уверен, что правильно воспроизвожу проблему…
- Создать группу тегов
- Создать тег
#staff-tag в группе тегов
- Установить параметр «Теги видны всем, но использовать их могут только следующие группы» в значение
staff
- Создать группу
- На странице
/manage/tags добавить #staff-tag в список «Слежение»
- Добавить тестового пользователя (TL2) в группу
- Убедиться, что для тестового пользователя в разделе «Настройки/Отслеживание» тег
#staff-tag находится в списке «Слежение»
- Перейти на страницу
/tags/staff-tag и изменить значок колокольчика на «Обычный»
Кажется, всё работает?
Я не уверен насчёт этого шага. Я использовал групповые уведомления, чтобы добавить тег в уведомления об отслеживании для группы.
Я имел в виду вот эту страницу:
Возможно, я слишком сократил ссылку — /g/НАЗВАНИЕ_ГРУППЫ/manage/tags.
Или мне стоит попробовать с другого места?
Я не знаю точно. Я не могу уделять этому много времени до OFFDEM. Пока я выполняю SQL-запросы, чтобы исправить проблему для новых пользователей по мере их появления. Возможно, я упустил какую-то деталь. Например… Все категории по умолчанию отключены, это может влиять на уведомления.
Это может быть актуально. Вы используете для этого настройку «Отключить все категории по умолчанию»?
1 лайк
Да, я использую эту настройку.