Hola, acabo de notar que Discourse usa una versión antigua de ActiveModelSerializer.
Fue lanzado hace cinco años y no creo que sea bueno.
Parece que está planeado bifurcar AMS, pero hay una mejor solución.
Mi sugerencia aquí es migrar de AMS a Alba, un serializador JSON que creé y mantengo. Aunque Alba no es 100% compatible con AMS, la API que ofrece es similar a AMS y aproximadamente 10 veces más rápida que la última versión de AMS.
Si los mantenedores están de acuerdo con la migración, enviaré una PR.
Creo que esto supone mejoras de rendimiento, así que ejecutaré un script de benchmark.
No sabía nada sobre los plugins de serializador. Encontré un ejemplo de plugins que personalizan el serializador.
Aquí, el método include_votes? parece un método mágico de AMS, ya que no encuentro dónde se utiliza en el código base. Creo que necesitamos alguna migración en tales casos, ya que Alba no admite este comportamiento.
Mantener la compatibilidad debe ser importante, así que si no puedo hacer que Alba sea compatible con los plugins existentes, prefiero no seguir adelante.
Ah, gracias, parece que solo define algunos métodos auxiliares que devuelven si el plugin está habilitado o no y el cuerpo del plugin. Creo que puedo hacerlo compatible con Alba, déjame intentarlo.
Lo siento. No me fijé bien en el plugin original. Creo que mi sugerencia podría no ser tan útil como pensaba.
Si lo que estás haciendo es añadir algo a los serializadores existentes (como añadir un campo al serializador de posts), entonces te he ayudado. Si necesitas añadir una nueva ruta que devuelva su propia información, entonces necesitarás hacer otra cosa.