· 4 min read
Start der Rails-Rezepte-Serie
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:
app
enthĂ€lt den gesamten anwendungsspezifischen Code dieser Anwendung. Der gröĂte Teil der Rails-Entwicklung findet innerhalb des app-Verzeichnisses statt.
app/controllers
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.
app/models
enthĂ€lt die Modelle, deren Namen die Form cookbook.rb haben sollten. Die Modellklassen erben gröĂtenteils von ActiveRecord::Base.
app/views
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.
app/helpers
enthÀlt View-Helper. Die Namen sollten die Form weblog_helper.rb aufweisen.
app/apis
enthĂ€lt API-Klassen fĂŒr Webdienste.
config
enthĂ€lt Konfigurationsdateien fĂŒr die Rails-Umgebung, die Routing-Map, die Datenbank und andere AbhĂ€ngigkeiten.
components
enthĂ€lt eigenstĂ€ndige Mini-Anwendungen, die Controller, Modelle und Views bĂŒndeln.
db
enthĂ€lt das Datenbankschema in schema.rb. db/migrate enthĂ€lt die Folge von Migrations fĂŒr Ihr Schema.
lib
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.
public
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.
script
enthĂ€lt Helfer-Skripten fĂŒr die Automatisierung und Generierung.
test
enthÀlt Unit-Tests und funktionale Tests, zusammen mit Fixtures.
vendor
enthÀlt externe Bibliotheken, von denen die Anwendung abhÀngig ist. Es enthÀlt auch das Plugins-Unterverzeichnis. Dieses Verzeichnis liegt im Ladepfad.