Então, recentemente decidi ativar a gamificação e imediatamente deparei com um problema em que a rota /leaderboard retornava um erro 404. O backend tinha mais de 800 mil registros de pontuação calculados e as permissões estavam corretas, mas a página em si não carregava.
A verificação dos logs do servidor mostrou:
ActiveModel::MissingAttributeError (atributo 'admin' ausente para User)
Ao examinar o código do plugin, notei em lib/discourse_gamification/leaderboard_cached_view.rb que a consulta de usuários usa uma string .select específica para buscar as colunas do ranking:
.select(
"users.id, users.name, users.username, users.uploaded_avatar_id, p.total_score, p.position",
)
Como users.admin e users.moderator não estão incluídos nessa consulta, os objetos de usuário instanciados não possuem esses campos disponíveis. Parece que (?) mais adiante, durante a serialização ou a renderização do layout principal, uma verificação de equipe é acionada nesses usuários, fazendo com que o Rails lance o MissingAttributeError e retorne um 404.
Editei manualmente esse arquivo para incluir users.admin e users.moderator no bloco .select:
.select(
"users.id, users.name, users.username, users.uploaded_avatar_id, users.admin, users.moderator, p.total_score, p.position",
)
Após reiniciar o contêiner do aplicativo, o ranking começou a carregar perfeitamente.
Estou achando que isso seja um bug (?) ou será que eu pensei demais ou deixei passar algo completamente?
O site está atualmente na versão v2026.6.0-latest (47a830330f).