RGJ
(Richard - Communiteq)
23.Ноябрь.2020 15:45:56
1
Я не очень знаком с личными почтовыми ящиками групп и не уверен, как воспроизвести эту проблему, но происходит следующее:
Для группы настроен ящик личных сообщений, назовём её ExampleGroup.
Участник этой группы получает уведомление: «в вашем ящике examplegroup 6 сообщений».
При нажатии на это уведомление система пытается загрузить /topics/private-messages-group/username/examplegroup.json.
Это вызывает ошибку.
Я думаю, что это происходит потому, что группы с названием examplegroup не существует. Группа называется ExampleGroup.
Метод ListController::generate_message_route делает следующее:
group = Group.find_by(name: params[:group_name])
Изменение на
group = Group.find_by(name: params[:group_name])
group = Group.where('lower(name) = ?', params[:group_name].downcase).first unless group
кажется, решает проблему. Но я уверен, что это не сама причина. Где-то параметр преобразуется в нижний регистр, где этого не должно быть (по-моему…
У кого-нибудь есть предложения, куда стоит посмотреть?
3 лайка
angus
(Angus McLeod)
25.Ноябрь.2020 01:19:56
3
Если вы создаете уведомления напрямую в консоли, ссылка сохраняет регистр букв (это работает даже с тестовыми данными)
Notification.create!(
user_id: 1,
notification_type: Notification.types[:group_message_summary],
data: { inbox_count: 5, group_name: "MyGroup", group_id: 41, username: 'angus' }.to_json
)
Проблема может быть на стороне создания, то есть в пост-алертере: discourse/app/services/post_alerter.rb at main · discourse/discourse · GitHub
Однако мне не удаётся воспроизвести эту проблему.
1 лайк
RGJ
(Richard - Communiteq)
25.Ноябрь.2020 06:19:56
4
Спасибо за вашу помощь! Но это не та ссылка,
это не /u/username/messages/group/groupname,
а /topics/private-messages-group/username/groupname.
Я не могу понять, откуда берется последняя ссылка и как её сгенерировать.
2 лайка
techAPJ
(Arpit Jalan)
20.Апрель.2021 05:00:01
5
Я считаю, что правильное решение здесь — не требовать заглавные буквы в названии группы в параметрах URL. Это реализовано в:
committed 04:55AM - 20 Apr 21 UTC
Обратите внимание, что переход по адресу /u/username/messages/group/groupname отправляет AJAX-запрос на /topics/private-messages-group/username/groupname, поэтому действия @angus по отладке этой проблемы выглядят верными.
Спасибо за сообщение об этой проблеме, @RGJ
5 лайков