· 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.

Back to Blog