In der Lehrveranstaltung OOSE-II im WiSe 2012 verwenden wir Ruby on Rails (RoR) und die IDE RubyMine auf der Basis von
Nach der ersten Woche sollte jede/r Teilnehmer/in auf ihrem/seinem Arbeitsgerät eine voll funktionstüchtige Entwicklungsumgebung installiert haben. Anleitungen dazu findet man auch unter Korem.
Wie leicht sich ein Blog unter RoR entwickeln lässt, zeigen die Rails Guides.
und los geht´s:
Dann sollte die richtige Rails-Platform gewählt werden:
Das Grundgerüst der Blog-App wird generiert:
Und schon kann der rails server gestartet werden:
Das Ergebnis lässt sich im Browser unter http://localhost:3000 bewundern:
Mit rails g scaffold post title:string text:text kann man auf der Kommandozeile Model, View und Controller für Blogposts (kurz „post“) erzeugen. Das geht aber auch innerhalb von RubyMine:
Damit wurde folgendes Skelett generiert:
Jetzt muss noch die Datenbank erzeugt werden. Das geht über „rake task“ „db:migrate„.
Unter http://localhost:3000/posts haben wir damit bereits eine Datenbank-gestützte Webanwendung:
die auch schon funktioniert:
und folgendes Ergebnis liefert:
In RubyMine gibt es eine Datenbank-Konsole, in der man die Einträge verfolgen kann:
Weiterhin ist die rails console ein unverzichtbares Entwicklungswerkzeug:
Die „rails console“ stellt einem die gesamte Laufzeit-Umgebung des laufenden Rails-Servers zur Verfügung:
was dem Entwickler in der Laufzeit-Umgebung von Rails allerlei Experimente erlaubt:
Jedes Objekt in Ruby versteht aber auch die Methode „methods„, falls man nicht weiß, welche Sprache das gewählte Objekt spricht:
In der Datenbank wurde also nicht nur eine Tabelle „posts“ mit dem Feld „title“ angelegt, in Rails gibt es auch ein Modell „Post“:
Das Model „Post“ versteht eine ganze Reihe von Methoden betreffend das Feld „title“:
Die „rails console“ ist voll ausgestattet mit allen Möglichkeiten des Interaktiven Ruby Debuggers (irb), siehe
http://www.rubyinside.com/irb-lets-bone-up-on-the-interactive-ruby-shell-1771.html
Das hilft bei der Demystifizierung von rails ungemein. Statt zu raten, welche Magie am Werk ist, kann man selber prüfen, alle Objekte in die Hand nehmen, deren Inhalte anschauen und verändern. Und das alles in einem laufenden Server!
Ruby ist eine interpretierte Sprache, die nicht kompiliert werden muss wie Java. Daher entfällt ein Zwischenschritt. Man ändert den Quellcode und sofort sieht man die Änderung im Browser.
In der „rails console“ werden die geänderten Modelle jedoch nicht automatisch neu geladen. Hier ist ein Kommando „reload!“ erforderlich.