3.3 Grundgerüst mit Scaffolds erstellen
CRUD
In unserer Personalverwaltung employees soll es möglich sein, Mitarbeiter anzulegen, anzuzeigen, zu bearbeiten und zu löschen. Diese vier Eigenschaften kennzeichnen eine Ressource (engl. Resource). In der Softwareentwicklung kennt man dieses Verhalten unter der Bezeichnung CRUD , wobei jede dieser vier Aktionen einem Datenbankzugriff zugeordnet ist:
- C: Create
INSERT - R: Read
SELECT - U: Update
UPDATE - D: Delete
DELETE
Ressource anlegen
Um eine Resource zu erzeugen, stellt Rails einen Generator zur Verfügung, mit dem der erforderliche Code automatisch erstellt werden kann.
Mit dem Befehl
ruby script/generate scaffold ModelName feld_name:feldtyp
Erzeugte Dateien
wird automatisch Code erstellt, mit dem wir Ressourcen hinzufügen, ändern, löschen und anzeigen können. Konkret bedeutet das, es werden das Model (repräsentiert die Datenbanktabelle), der Controller (steuert die Interaktion mit den Benutzern) mit den erforderlichen Methoden (Actions), die dazugehörigen vier Views (HTML-Templates) und eine sogenannte Migration-Datei zur Erzeugung der zugehörigen Datenbanktabelle erstellt.
Englische Bezeichnungen |
Dabei ist zu beachten, dass alle Bezeichnungen, also der Modelname und die Feldnamen, in Englisch und im Singular angegeben werden müssen, da Rails per Konvention daraus automatisch weitere Bezeichnungen, wie zum Beispiel den Controllernamen und die Namen und Speicherplätze der Views, u. a. unter Einsatz von Pluralbildung generiert. |
Wir möchten zunächst nur den Vornamen, den Nachnamen, das Geburtsdatum, die E-Mail-Adresse und einen Kommentar zu den Mitarbeitern verwalten. Dazu erzeugen wir über den eben gezeigten Befehl die Ressource employee mit den Feldern firstname, lastname, birthday, email und comment:
ruby script/generate scaffold employee firstname:string \ lastname:string birthday:date email:string comment:text
Migration
Der Generator hat automatisch im Verzeichnis app/models die Model-Datei employee.rb angelegt, im Verzeichnis app/controllers die Controller-Datei employees_controller.rb, im Verzeichnis app/views die vier HTML-Templates index.html.erb, show.html.erb, new.html.erb und edit.html.erb sowie im Verzeichnis db/migrate die Migration-Datei 001_create_employees.rb zur Erzeugung der Datenbanktabelle employees . Diese müssen wir noch mit dem Befehl rake db:migrate aus unserem Projektverzeichnis heraus ausführen, damit die Tabelle wirklich angelegt wird:
rake db:migrate == CreateEmployees: migrating -- create_table(:employees) -> 0.3426s == CreateEmployees: migrated (0.3429s)
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.