Olá, acabei de notar que o Discourse usa uma versão antiga do ActiveModelSerializer.
Ele foi lançado há cinco anos e acho que não é bom.
Parece que está planejado fazer um fork do AMS, mas há uma solução melhor.
Minha sugestão aqui é migrar do AMS para o Alba, um serializador JSON que criei e mantenho. Embora o Alba não seja 100% compatível com o AMS, a API que ele oferece é semelhante ao AMS e cerca de 10 vezes mais rápido que o AMS mais recente.
Se os mantenedores concordarem com a migração, enviarei um PR.
Acredito que isso traga melhorias de performance, então executarei um script de benchmark.
Eu não sabia sobre os plugins de serializador. Encontrei um exemplo de plugins que personalizam o serializador.
Aqui, o método include_votes? parece um método mágico do AMS, já que não consigo encontrar onde ele é usado no codebase. Acho que precisamos de alguma migração nesses casos, pois o Alba não suporta esse comportamento.
Manter a compatibilidade deve ser importante, então, se eu não conseguir tornar o Alba compatível com os plugins existentes, prefiro não prosseguir.
Ah, obrigado, parece que ele apenas define alguns métodos auxiliares que retornam se o plugin está habilitado ou não e o corpo do plugin. Acho que posso torná-lo compatível com Alba, deixe-me tentar.
Desculpe. Eu não olhei com atenção suficiente para o plugin original. Acho que minha dica pode não ser tão útil quanto eu pensava.
Se você está adicionando algo a serializadores existentes (como adicionar um campo ao serializador de postagens), então eu ajudei. Se você precisar adicionar uma nova rota que retorne suas próprias informações, então você precisará fazer outra coisa.