Sujet avec japonais dans l'URL ne redirige pas si l'URL ne correspond pas parfaitement

J’ai creusé notre base de code et il semble que l’erreur soit assez simple, mais j’aimerais vérifier mes hypothèses.

Nous avons un paramètre de site nommé slug_generation_method qui doit être modifié de la valeur par défaut ascii à encoded pour déclencher ce bug. Lorsque vous modifiez ce paramètre de site, nous effaçons tous les slugs et les régénérons.

Ce que je ne comprends pas, c’est pourquoi, lorsque le paramètre de site est défini sur “encoded”, nous générons un slug comme ceci :

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

alors que je m’attendais à ce que “encoded” signifie quelque chose comme :

[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"

Cela semble provenir de :

Le slug brut de la table est renvoyé dans l’en-tête Location de la réponse 301 lorsque le slug d’un sujet ne correspond pas, et selon moi, nous devrions y renvoyer une URL valide.

9 « J'aime »