Je ne suis pas très familier avec les boîtes de réception de groupes privés et je ne suis pas sûr de savoir comment reproduire ce problème, mais voici ce qui se produit :
Une boîte de réception de messages privés a été configurée pour un groupe, appelons-le ExampleGroup.
Un membre de ce groupe reçoit une notification : « il y a 6 messages dans votre boîte de réception examplegroup ».
En cliquant sur cette notification, on tente de charger /topics/private-messages-group/username/examplegroup.json.
Cela génère une erreur.
Je pense que cela est dû au fait qu’il n’existe pas de groupe nommé examplegroup. Le groupe s’appelle ExampleGroup.
ListController::generate_message_route fait ceci :
group = Group.find_by(name: params[:group_name])
Le fait de modifier cela en :
group = Group.find_by(name: params[:group_name])
group = Group.where('lower(name) = ?', params[:group_name].downcase).first unless group
semble résoudre le problème. Mais je suis certain que ce n’est pas le véritable problème. Quelque part, le paramètre est converti en minuscules alors qu’il ne devrait pas l’être (je pense…).
Quelqu’un aurait-il une suggestion sur où chercher ?
Je pense que la bonne correction consiste à ne pas exiger un nom de groupe en majuscules dans les paramètres d’URL. Cela a été réalisé via :
Notez que la navigation vers /u/username/messages/group/groupname déclenche une requête AJAX vers /topics/private-messages-group/username/groupname, donc ce que @angus a fait ci-dessus pour déboguer ce problème semble correct.