Nome de usuário Unicode com Σ como caractere final causa erro ao carregar página de perfil

Curiosamente, o Postgres também falha aqui:

[2] pry(main)> DB.query_single('select lower(?)', 'ΣΠΥΡΟΣ')
=> ["σπυροσ"]

Talvez devêssemos simplesmente tratar esse comportamento peculiar como um caso especial em nosso método interno do Discourse que calcula o username_lower?

Encontre todos os métodos que chamam username_lower, encadeie-os a uma função central e, em seguida, permita esse caso especial (acho que podemos usar uma chamada ao mini_racer aqui, se quisermos, ou simplesmente chamar .lower e corrigi-la depois com uma chamada a sub).

Atualizei o título do OP aqui para deixar mais claro.

3 curtidas