Hallo, ich habe gerade bemerkt, dass Discourse eine ältere Version von ActiveModelSerializer verwendet.
Sie wurde vor fünf Jahren veröffentlicht und ich glaube nicht, dass das gut ist.
Es scheint, dass eine Abspaltung (Fork) von AMS geplant ist, aber es gibt eine bessere Lösung.
Mein Vorschlag hier ist die Migration von AMS zu Alba, einem JSON-Serializer, den ich erstellt und pflege. Obwohl Alba nicht 100%ig mit AMS kompatibel ist, ist die angebotene API ähnlich wie bei AMS und etwa 10-mal schneller als das neueste AMS.
Wenn die Maintainer der Migration zustimmen, werde ich einen PR senden.
Ich glaube, es bringt Leistungsverbesserungen, daher werde ich ein Benchmark-Skript ausführen.
Ich wusste nichts von Serializer-Plugins. Ich habe ein Beispiel für Plugins gefunden, die den Serializer anpassen.
Hier scheint die Methode include_votes? eine magische Methode von AMS zu sein, da ich nirgendwo im Code sehen kann, wo sie verwendet wird. Ich denke, wir brauchen in solchen Fällen eine Migration, da Alba dieses Verhalten nicht unterstützt.
Die Aufrechterhaltung der Kompatibilität muss wichtig sein. Wenn ich Alba nicht mit vorhandenen Plugins kompatibel machen kann, ziehe ich es vor, nicht fortzufahren.
Ah, danke, es sieht so aus, als ob es nur einige Hilfsmethoden definiert, die zurückgeben, ob das Plugin aktiviert ist oder nicht, und den Plugin-Body. Ich denke, ich kann es mit Alba kompatibel machen, lassen Sie mich es versuchen.
Entschuldigung. Ich habe mir das ursprüngliche Plugin nicht genau genug angesehen. Ich glaube, mein Hinweis ist vielleicht nicht so hilfreich, wie ich dachte.
Wenn Sie etwas zu bestehenden Serializern hinzufügen (z. B. ein Feld zum Post-Serializer), dann habe ich geholfen. Wenn Sie eine neue Route hinzufügen müssen, die ihre eigenen Informationen zurückgibt, dann müssen Sie etwas anderes tun.