Non sono molto familiare con le caselle di posta private dei gruppi e non sono sicuro di come riprodurre il problema, ma sta accadendo quanto segue:
È stata configurata una casella di posta per i messaggi privati di un gruppo, chiamiamolo ExampleGroup.
Un membro del gruppo riceve una notifica: ‘ci sono 6 messaggi nella tua casella di posta examplegroup’.
Cliccando sulla notifica si tenta di caricare /topics/private-messages-group/username/examplegroup.json.
Questo genera un errore.
Penso che ciò accada perché non esiste un gruppo chiamato examplegroup. Il gruppo si chiama ExampleGroup.
ListController::generate_message_route fa questo:
group = Group.find_by(name: params[:group_name])
Modificandolo in:
group = Group.find_by(name: params[:group_name])
group = Group.where('lower(name) = ?', params[:group_name].downcase).first unless group
sembra risolvere il problema. Ma sono certo che non sia questo il vero problema. Da qualche parte il parametro viene convertito in minuscolo quando non dovrebbe esserlo (penso…).
Qualcuno ha qualche suggerimento su dove guardare?
Credo che la soluzione corretta qui sia di non richiedere il nome del gruppo con la prima lettera maiuscola nei parametri dell’URL. Realizzato tramite:
Tieni presente che navigando su /u/username/messages/group/groupname viene inviato una richiesta AJAX a /topics/private-messages-group/username/groupname, quindi ciò che @angus ha fatto sopra per debuggare questo problema sembra corretto.