Sequentielles Lernen mit Comic-Serien und Active Model Serializer

Mar 17 2023
Das Erlernen des Programmierens von Datenbanken bringt mich dazu, Sammlungsanwendungen für alle meine Hobbys zu erstellen. Hier bin ich also wieder mit einem anderen Sammlungsprogramm und verwende es, um meine Graphic Novel-, Comic- und Sequential Art-Sammlung zu verfolgen.
Kunst von David Mazzucchelli (aus Asterios Polyp)

Das Erlernen des Programmierens von Datenbanken bringt mich dazu, Sammlungsanwendungen für alle meine Hobbys zu erstellen. Hier bin ich also wieder mit einem anderen Sammlungsprogramm und verwende es, um meine Graphic Novel-, Comic- und Sequential Art-Sammlung zu verfolgen. Dieses Mal erstelle ich es mit Ruby on Rails. Das ist Komiker.

Komiker: Der Graphic Novel Collection Tracker

Die bedeutendste Ergänzung bei unserem Sprung von Sinatra zu Rails in unserem zweiteiligen Ruby-Lehrplan war Active Record Serializer. Der Serializer bietet uns eine großartige Texturebene zur Ergänzung der Controller- und Model-Klassen.

Kunst von David Mazzucchelli (aus Asterios Polyp)

Zunächst einmal ist Active Record Serializer ein Ruby-Juwel. Die Ruby on Rails Guides beschreiben es kurz und bündig als „Bereitstellung einer grundlegenden Serialisierung zu einem serialisierbaren Hash für Ihre Objekte“. Im Zusammenhang mit der Entwicklung einer API können wir die Daten, die wir vom Backend aus senden, einfach steuern.

Auf der grundlegendsten Ebene helfen uns Serialisierer dabei, unsere Daten zu formen. In meinem Projekt kann ich damit auswählen, welche Attribute meine API enthalten soll.

Das obige Bild zeigt, dass der Serialisierer möchte, dass nur diese Attribute vom Controller einbezogen werden. Ich habe Attribute wie Herausgeber- und Benutzer-IDs sowie Zeitstempel ausgeschlossen, da diese von meiner Anwendung nicht verwendet werden und meine API unnötig überladen würden. Ich habe am Ende auch den Verleger eingefügt, der den Verleger eines Buchs unter meinen Büchern verschachtelt.

Sie können auch Methoden in einem Serialisierer definieren. Dies fügt unserer Datenausgabe eine weitere Ebene der Anpassung hinzu. Das einfachste Beispiel hierfür in meinem Projekt war die Definition des Benutzernamens, um ihn groß zu schreiben. Dies ist praktisch für personalisierte Willkommensnachrichten in meiner Bewerbung.

Beachten Sie, dass es sich bei dem Objekt hier in Zeile 6 um ein Serialisierungs-spezifisches Attribut handelt, das Ihnen den Zugriff auf die aktuelle Instanz von User ermöglicht. Die Möglichkeit, Methoden zu definieren und als Attribute zu übergeben, eröffnet Möglichkeiten für die gewünschte API-Ausgabe.