Tópico com japonês na URL não redireciona se a URL não corresponder perfeitamente

Investiguei nosso código e parece que o erro é relativamente simples, mas gostaria de verificar minhas suposições.

Temos uma configuração de site chamada slug_generation_method que precisa ser alterada do valor padrão ascii para encoded para ativar esse bug. Quando você altera essa configuração de site, limpamos todos os slugs e os geramos novamente.

O que não entendo é por que, quando a configuração de site está definida como “encoded”, geramos um slug assim:

[3] pry(main)> SiteSetting.slug_generation_method
=> "encoded"
[4] pry(main)> Slug.for(t.slug)
=> "キノの旅-home-thread-intermediate-book-club"

enquanto eu esperava que “encoded” significasse algo como

[5] pry(main)> CGI.escape(Slug.for(t.slug))
=> "%E3%82%AD%E3%83%8E%E3%81%AE%E6%97%85-home-thread-intermediate-book-club"

Isso parece vir de

O slug bruto da tabela é retornado no cabeçalho Location da resposta 301 quando o slug de um tópico não corresponde, e, na minha opinião, deveríamos retornar uma URL válida ali.

9 curtidas