Was ist ein Gerüst in Ruby on Rails?

Du lernst vielleicht Rails & und liest, dass du ein „Gerüst“ erstellen musst, um deine Rails-Anwendung zu starten…

Einfach!

Das kannst du mit dem Befehl rails g scaffold machen.

Aber was ist ein Gerüst?

„Ein Gerüst ist eine temporäre Struktur, die verwendet wird, um eine Arbeitsgruppe zu unterstützen, um den Bau, die Wartung und die Reparatur von Gebäuden, Brücken und allen anderen von Menschen geschaffenen Strukturen zu unterstützen.“ – Wikipedia

Übersetzt in Rails:

Ein Gerüst ist ein Satz automatisch generierter Dateien, der die Grundstruktur eines Rails-Projekts bildet.

Diese Dateien beinhalten:

  • Einen Controller
  • Ein Model
  • Views für jede Standard-Controller-Aktion (index, edit, show, new)

Eine neue Route.

Und eine Migration, um die Datenbank vorzubereiten.

Lassen Sie uns ein Beispiel sehen!

Wie man den Rails Scaffold-Befehl verwendet

Ein Beispiel für das Scaffolding eines Projekts für eine Website über Bücher würde wie folgt aussehen.

rails g scaffold books

Sie sollten eine Menge Text vorbeilaufen sehen, der die erstellten Dateien beschreibt.

Dieses Beispiel erstellt:

  • Ein BooksController
  • Ein BookModell
  • Eine neue resources :booksRoute, die Ihrer config/routes.rbDatei hinzugefügt wird
  • Eine Reihe von testbezogenen Dateien
  • Dateien unter app/views/books (insgesamt fünf)

Ja.

Das ist eine Menge Zeug.

Wenn Sie dieses Gerüst direkt nach der Erstellung rückgängig machen wollen, können Sie den folgenden Befehl verwenden.

rails d scaffold books

Wobei „d“ für „destroy“ steht.

Denken Sie daran, dass dies die Dateien, die durch den Gerüstprozess erstellt wurden, LÖSCHEN wird.

Nun:

Bevor Sie Ihren gerüsteten Code verwenden können, müssen Sie Ihre Migrationen ausführen, um Ihr Datenbankschema zu aktualisieren.

Verwenden Sie den Befehl rails db:migrate.

Wenn keine Fehlermeldungen angezeigt werden, sind Sie fertig! Sie haben eine Grundstruktur für Ihre neue Rails-Anwendung oder für ein neues Feature, das ein neues Model, Views & und einen entsprechenden Controller benötigt.

Nächstes:

Starten Sie rails server.

Öffnen Sie Ihren Browser auf localhost:3000/books & Sie sollten die Ergebnisse sehen können!

Rails-Gerüst mit zusätzlichen Feldern

Standardmäßig…

Ihr Modell erhält nur Zeitstempelfelder, was bedeutet, dass die einzige Information, die Sie über Ihre Bücher (oder jedes andere Modell, mit dem Sie arbeiten) aufzeichnen können, die Zeit ist, zu der sie erstellt oder aktualisiert wurden.

So können Sie das Gerüst mit zusätzlichen Feldern ausstatten:

rails g scaffold books title:string author:string publication_year:integer

Wenn Sie Ihr Gerüst auf diese Weise erstellen, haben Sie drei Felder, mit denen Sie arbeiten können:

Einen Titel, einen Autor und ein Erscheinungsjahr.

Das ist etwas interessanter als nur die Zeitstempel der Datenbank zu haben.

Btw.

Das ist die gleiche Syntax, die wir für die Erstellung von Migrationen mit rails g migration verwenden.

Generieren von spezifischen Komponenten

Scaffolding erstellt Dinge, die man vielleicht nicht sofort braucht oder will.

Aber Rails ist nett.

Sie können einzelne Komponenten, wie Controller, mit dem Befehl rails g (g für generate) erstellen.

Beispiele:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (erstellt Modell + Migration)
  • rails g migration CreateBook title:string year:integer (erstellt nur Migration)

Einer der großen Vorteile der Verwendung eines Gerüstbefehls ist, dass alle Dateien unter Verwendung der korrekten Namenskonventionen erstellt werden, was seltsame Fehlermeldungen vermeidet. Außerdem erspart es Ihnen die Arbeit, diese Dateien manuell zu erstellen.

Btw…

Es gilt als gute Praxis, automatisch generierte Dateien zu löschen, die Sie nicht verwenden wollen. Nachdem du also einen Generator wie „g controller“ benutzt hast, überprüfe die Liste der erstellten Dateien & und entferne diejenigen, die du nicht brauchst.

Zusammenfassung

Du hast etwas über Gerüste in Ruby gelernt, so dass du schnell eine neue Rails-Anwendung zum Üben erstellen kannst.

Wenn du mehr lernst, möchtest du vielleicht auf das Scaffolding verzichten.

Aber du kannst immer noch einzelne Controller, Modelle oder View-Dateien generieren, wenn du sie brauchst.

Danke fürs Lesen! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.