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
Book
Modell - Eine neue
resources :books
Route, die Ihrerconfig/routes.rb
Datei 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! 🙂