Ciao, ho appena notato che Discourse utilizza una versione precedente di ActiveModelSerializer.
È stato rilasciato cinque anni fa e non credo che sia una buona cosa.
Sembra che sia previsto un fork di AMS, ma c’è una soluzione migliore.
Il mio suggerimento qui è di migrare da AMS ad Alba, un serializzatore JSON che ho creato e mantengo. Sebbene Alba non sia compatibile al 100% con AMS, l’API che offre è simile ad AMS e circa 10 volte più veloce dell’ultima versione di AMS.
Se i manutentori sono d’accordo sulla migrazione, invierò una PR.
Credo che apporti miglioramenti alle prestazioni, quindi eseguirò uno script di benchmark.
Non ero a conoscenza dei plugin serializzatori. Ho trovato un esempio di plugin che personalizzano il serializzatore.
Qui, il metodo include_votes? sembra un metodo magico di AMS poiché non riesco a trovare dove viene utilizzato nel codebase. Penso che abbiamo bisogno di una migrazione in questi casi poiché Alba non supporta questo comportamento.
Mantenere la compatibilità deve essere importante, quindi se non riesco a rendere Alba compatibile con i plugin esistenti, preferisco non procedere.
Ah, grazie, sembra che definisca solo alcuni metodi helper che restituiscono se il plugin è abilitato o meno e il corpo del plugin. Penso di poterlo rendere compatibile con Alba, fammici provare.
Mi dispiace. Non ho guardato abbastanza attentamente il plugin originale. Penso che il mio suggerimento potrebbe non essere utile come pensavo.
Se stai aggiungendo qualcosa ai serializer esistenti (come aggiungere un campo al serializer dei post), allora ti ho aiutato. Se devi aggiungere una nuova route che restituisce le proprie informazioni, allora dovrai fare qualcos’altro.