Login
Newsletter
Werbung

So, 29. Juli 2007, 00:00

Einführung in Ruby on Rails

Vorwort

Ruby on Rails - kurz Rails genannt - ist ein seit 2004 verfügbares Framework für Webanwendungen. Seine Grundlage ist die konsequent objektorientierte Skriptsprache Ruby. Das Framework selbst folgt dem eigentlich für lokale GUI-Anwendungen entwickelten MVC-Pattern (Model, View, Controller), das Datenstruktur, Präsentation und Programmlogik sauber voneinander trennt. Dieser Artikel führt anhand eines einfachen Beispiels in die Webprogrammierung mit Rails ein.

Die Syntax von Ruby

Bevor es losgeht, sollten einige Worte zu Ruby selbst gesagt werden, weil diese Sprache einige Besonderheiten besitzt. Wenn Sie noch kein Ruby haben, prüfen Sie, ob Ihre Systemdistribution mindestens Version 1.8.4 anbietet (die brauchen Sie für Rails). Andernfalls müssen Sie sich unter www.ruby-lang.org das Quellcode-Archiv herunterladen und per Automake-Dreiklang (./configure, make, make install) installieren.

Sobald Ruby zur Verfügung steht, können Sie

irb --simple-prompt

eingeben. Dies startet die Interactive Ruby Shell, die ideal zum Ausprobieren ist, weil Ruby-Befehle und -Ausdrücke einzeln eingegeben werden können und sofort Feedback liefern. Im Folgenden wird der irb-Prompt mit >> gekennzeichnet, dahinter folgt die Benutzereingabe, und nach einem Kommentarzeichen (#) wird das jeweilige Ergebnis gezeigt.

irb ist unter anderem ein praktischer Taschenrechner:

>> 7 * 6 # => 42
>> 47.0 / 2 # => 23.5

47.0 (oder wahlweise 2.0, oder beides) ist notwendig, um das korrekte Fließkomma-Ergebnis zu erhalten. In Ruby gehört nämlich jedes Literal einer der eingebauten Basisklassen an; Kompromiss-Datentypen wie in Java gibt es nicht. Dies können Sie mit Hilfe der für alle Objekte verfügbaren Methode class testen. Beispiele:

>> 3.class # => Fixnum
>> 2.5.class # => Float
>> "hi".class # => String

Variablen sind dagegen dynamisch typisiert und können nacheinander verschiedenste Werte annehmen. Die Bezeichner lokaler Variablen werden ohne Präfix geschrieben und beginnen mit einem Kleinbuchstaben; andernfalls gelten sie als Konstanten. Ein führendes Dollarzeichen ergibt eine globale Variable.

>> a = 0b1011 # => 11
>> a = "Welt" # => "Welt"

Das Präfix 0b erzeugt übrigens Dualzahlen. Innerhalb von Strings in doppelten Anführungszeichen können beliebige Ausdrücke durch #{...} gekennzeichnet werden. Hier ein Ausgabebeispiel; die Methode puts gibt übrigens das übergebene Argument und einen Zeilenumbruch aus:

>> puts "3 * 9 - 4 = #{3 * 9 - 4}"
3 * 9 - 4 = 23

Typisch für den Ruby-Alltag sind mehrere hintereinander geschriebene Methodenaufrufe wie dieser:

>> "Hallo Welt".swapcase.reverse
=> "TLEw OLLAh"

Die String-Methode swapcase vertauscht Groß- und Kleinschreibung, während reverse den String umkehrt.

In Bezug auf Ausdrücke ist es noch wichtig zu wissen, dass 0 und leere Strings in Ruby - anders als in den meisten anderen Sprachen - als true gelten; nur die Ergebnisse falscher Vergleiche sowie das Leerobjekt nil sind false.

Klassen werden mit Hilfe des Schlüsselworts class definiert, Methodendefinitionen mit def. Instanzvariablen beginnen mit einem @-Zeichen und Klassenvariablen mit @@. Hier eine kurze Klassendefinition, eine Instanzerzeugung und ein Methodenaufruf:

class Kreis
 # Konstruktor
 def initialize(r = 1)
 @radius = r
 end
 # Methode umfang
 def umfang
 @radius * 2 * Math::PI
 end
 # Akzessor für den Radius
 attr_accessor :radius
end
# Instanziierung
kreis = Kreis.new(10)
puts "Umfang: #{kreis.umfang}"
# Radius ändern
kreis.radius = 5
puts "Neuer Umfang: #{kreis.umfang}"

Speichern Sie die Datei, zum Beispiel unter kreis.rb. Führen Sie sie mittels ruby kreis.rb aus. Die Ausgabe lautet vorhersehbarerweise:

Umfang: 62.8318530717959
Neuer Umfang: 31.4159265358979

Der Konstruktor gibt einen Standardwert für den Radius an, so dass auch Kreis.new ohne Wertangabe (und ohne Argumentklammern!) einen gültigen Kreis erzeugt. Interessant ist noch der Akzessor - attr_accessor, gefolgt von einer Liste der gewünschten Instanzvariablen, ermöglicht einfachen Lesezugriff sowie Schreibzugriff per Wertzuweisung. Falls Schreibzugriff unerwünscht ist, kann attr_reader verwendet werden. Für kontrollierte Änderungen kann dann stattdessen eine Methode mit dem Namen der Instanzvariablen, gefolgt von einem Gleichheitszeichen (im vorliegenden Fall also radius=), definiert werden.

Ruby on Rails

Nach diesem Ruby-Schnellstkurs geht es endlich mit Ruby on Rails los. Rails selbst wird über den Ruby-Paketmanager Rubygems installiert. Falls Sie diesen nicht haben, laden Sie ihn zunächst von rubygems.org herunter und installieren Sie ihn mit Hilfe der Eingabe ruby setup.rb.

Danach können Sie Rails (als root) wie folgt installieren:

gem update -y
gem install -y rails

update kann eine Weile dauern; es bringt alle installierten gem-Pakete auf den neuesten Stand. Die Option -y installiert jeweils automatisch alle Abhängigkeiten.

Daneben benötigen Sie einen Datenbankserver. Das nachfolgende Beispiel verwendet den Rails-Standard MySQL, aber es kann auch fast jede andere Datenbank verwendet werden, für die eine Ruby-Bibliothek verfügbar ist. Zunächst muss auch die Unterstützung für die jeweilige Datenbank installiert werden; für MySQL geht das so:

gem install -y mysql

Rails besteht vor allem aus einer Reihe praktischer Generatoren. Erzeugen Sie ein neues Verzeichnis für die Beispielanwendung, wechseln Sie in dieses und geben Sie Folgendes ein, um eine Rails-Anwendung namens koelsch zu erstellen: rails koelsch. Die Webanwendung dient der Beurteilung verschiedener Kölsch-Sorten durch User; als Nichtkölner können Sie Ihre Version gern auch pils, weizen oder sogar alt nennen...

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung