No estoy muy familiarizado con las bandejas de entrada privadas de grupos y no estoy seguro de cómo reproducir esto, pero ocurre lo siguiente:
Se ha configurado una bandeja de entrada de mensajes privados para un grupo, llamémoslo ExampleGroup.
Un miembro de ese grupo recibe una notificación: ‘hay 6 mensajes en tu bandeja de entrada de examplegroup’.
Al hacer clic en esa notificación, intenta cargar /topics/private-messages-group/username/examplegroup.json.
Esto produce un error.
Creo que esto ocurre porque no existe un grupo llamado examplegroup. El grupo se llama ExampleGroup.
ListController::generate_message_route hace lo siguiente:
group = Group.find_by(name: params[:group_name])
Cambiar esto a:
group = Group.find_by(name: params[:group_name])
group = Group.where('lower(name) = ?', params[:group_name].downcase).first unless group
parece resolver el problema. Pero estoy seguro de que ese no es el problema real. En algún lugar el parámetro se convierte a minúsculas cuando no debería (creo…).
¿Alguien tiene alguna sugerencia sobre dónde buscar?
Creo que la solución correcta aquí es no requerir que el nombre del grupo en los parámetros de la URL tenga mayúsculas. Se ha realizado mediante:
Ten en cuenta que al navegar a /u/username/messages/group/groupname se dispara una solicitud AJAX a /topics/private-messages-group/username/groupname, por lo que lo que @angus hizo arriba para depurar este problema parece correcto.