Heute beginnen wir mit einer Reihe von Rails-Rezepten in unserem Tutorials-Bereich.
Die Rezepte stammen aus dem deutschsprachingen Rail Kochbuch aus dem O’Reilly Verlag.
Wir möchten uns an dieser Stelle dafür bedanken, dass O’Reilly uns die Rezepte zur Verfügung stellt.
Den Start wird die Rails-Einführung machen und in den nächsten Tagen folgen weiter Auszüge.
Entwickeln mit Rails
2.0 Einführung
Rails ist darauf ausgerichtet, die Webentwicklung produktiver und einträglicher zu machen. Tatsächlich wird behauptet, dass Sie mit Rails bis zu 10-mal produktiver sein können als mit anderen Frameworks. Sie müssen selbst entscheiden, ob Rails einträglicher ist, aber wenn Sie produktiver sind, können Sie mehr Zeit damit verbringen, Sie interessierende Probleme zu lösen, anstatt das Rad ständig neu zu erfinden und Infrastruktur zu schaffen. Die Produktivitätsvorteile erkennen Sie am besten, wenn Sie sich eine komfortable Entwicklungsumgebung schaffen. Ihr primäres Entwicklungswerkzeug wird ein Texteditor oder eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) sein. Dieses Werkzeug gut zu beherrschen erlaubt es Ihnen, sich effektiv innerhalb der Quelldateien der Anwendung zu bewegen. Sie benötigen außerdem Werkzeuge, um mit Rails über die Kommandozeile kommunizieren zu können, d.h., Sie müssen eine geeignete Terminal- oder Konsolenanwendung auswählen.
Dieses Kapitel enthält Rezepte, die Ihnen dabei helfen, Ihre Rails-Entwicklungsumgebung auszuwählen und den Ausgangspunkt einer Rails-Anwendung anzulegen. Wir behandeln auch einige hilfreiche Lösungen für gängige Probleme, denen man bei der Rails-Entwicklung häufig begegnet, etwa zur Generierung der Ruby-Dokumentation (RDoc) für Ihre Anwendung oder zur Entwicklung mit dem aktuellsten Rails (Edge Rails).
Sobald Sie bereit sind, neue Rails-Projekte anzulegen und zu bearbeiten, und alle Entwicklungs-Tools am richtigen Platz sind, können Sie damit beginnen herauszufinden, was Ihnen das Framework zu bieten hat.
2.1 Ein Rails-Projekt anlegen
Problem
Sie haben Rails auf Ihrem System installiert und wollen Ihr erstes Rails-Projekt anlegen.
Lösung
Wir gehen davon aus, dass Sie Ruby, RubyGems, Rails und eine der von Rails unterstützten Datenbanken (MySQL ist am weitesten verbreitet; PostgreSQL ist weniger populär, aber eine ausgezeichnete Wahl) installiert haben. Um eine neue Rails-Anwendung anzulegen, führen Sie den Befehl
rails aus und übergeben ihm den Pfad auf die neue Anwendung als Argument. Um Ihre neue Anwendung zum Beispiel unter
/var/www/cookbook anzulegen (wobei das
cookbook-Verzeichnis noch nicht existiert), geben Sie den folgenden Befehl in einem Terminal-Fenster ein:
$ rails /var/www/cookbook
Der
rails-Befehl legt das Verzeichnis für Ihr Projekt mit dem von Ihnen angegebenen Pfad an. Er erzeugt außerdem eine Reihe von Unterverzeichnissen, die den Projektcode nach der Funktion organisieren, die er innerhalb der MVC-Umgebung übernimmt. Der
rails-Befehl kennt darüber hinaus verschiedene Kommandozeilenoptionen. Diese können Sie sich ansehen, indem Sie Folgendes eingeben:
$ rails --help
Die wichtigste dieser Optionen ist
–database=database_type, wobei
database_type einer der folgenden sein kann:
mysql,
oracle,
postgresql,
sqlite2 oder
sqlite3. Um beispielsweise PostgreSQL anstelle der Standard-Datenbank (MySQL) zu verwenden, geben Sie den folgenden Befehl ein:
$ rails /var/www/cookbook --database=postgresql
Diskussion
Nachdem Sie ein Projekt mit Rails angelegt haben, sollten Sie sich die Struktur der generierten Verzeichnisse sowie die erzeugten Dateien ansehen. Ihr neues Rails-Projekt enthält eine nette README-Datei, die die Rails-Grundlagen beschreibt, etwa wie man an die Dokumentation gelangt, Rails debuggt, die Rails-Konsole, Breakpunkte und vieles mehr.
Ein neues Rails-Projekt enthält die folgenden Verzeichnisse:
enthält den gesamten anwendungsspezifischen Code dieser Anwendung. Der größte Teil der Rails-Entwicklung findet innerhalb des
app-Verzeichnisses statt.
enthält die Controller-Klassen, die alle von
ActionController::Base erben. Jede dieser Dateien sollte nach dem Modell benannt werden, das sie kontrollieren, gefolgt von
_controller.rb (z.B.
cookbook_controller.rb), damit ein automatisches Abbilden der URLs möglich ist.
enthält die Modelle, deren Namen die Form
cookbook.rb haben sollten. Die Modellklassen erben größtenteils von
ActiveRecord::Base.
enthält die Template-Dateien für den View. Der Name muss beispielsweise
cookbook/index.rhtml für die Aktion
CookBookController#index lauten. Alle Views verwenden die eRuby-Syntax. Dieses Verzeichnis kann auch Stylesheets, Images und so weiter enthalten. Diese können über symbolische Links mit
public verbunden werden.
enthält View-Helper. Die Namen sollten die Form
weblog_helper.rb aufweisen.
enthält API-Klassen für Webdienste.
enthält Konfigurationsdateien für die Rails-Umgebung, die Routing-Map, die Datenbank und andere Abhängigkeiten.
enthält eigenständige Mini-Anwendungen, die Controller, Modelle und Views bündeln.
enthält das Datenbankschema in
schema.rb.
db/migrate enthält die Folge von Migrations für Ihr Schema.
enthält anwendungsspezifische Bibliotheken – d.h. grundsätzlich jede Art von eigenem Code, der nicht unter Controller, Modelle oder Helfer fällt. Dieses Verzeichnis liegt im Ladepfad.
Das ist das für jeden verfügbare Verzeichnis. Es enthält Unterverzeichnisse für Images, Stylesheets und JavaScript-Skripten. Es enthält außerdem die Dispatcher und die Standard-HTML-Dateien.
enthält Helfer-Skripten für die Automatisierung und Generierung.
enthält Unit-Tests und funktionale Tests, zusammen mit Fixtures.
enthält externe Bibliotheken, von denen die Anwendung abhängig ist. Es enthält auch das Plugins-Unterverzeichnis. Dieses Verzeichnis liegt im Ladepfad.