Ruby on Rails in OOSE-II im WiSe 2012

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.
wpid-PastedGraphic1-2012-09-29-14-56.tiff
und los geht´s:
wpid-PastedGraphic2-2012-09-29-14-56.tiff

Dann sollte die richtige Rails-Platform gewählt werden:

wpid-PastedGraphic3-2012-09-29-14-56.tiff

Das Grundgerüst der Blog-App wird generiert:

wpid-PastedGraphic4-2012-09-29-14-56.tiff

Und schon kann der rails server gestartet werden:
wpid-PastedGraphic5-2012-09-29-14-561.tiff

wpid-PastedGraphic6-2012-09-29-14-561.tiff

Das Ergebnis lässt sich im Browser unter http://localhost:3000 bewundern:

wpid-PastedGraphic7-2012-09-29-14-561.tiff
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:

wpid-PastedGraphic11-2012-09-29-14-561.tiff

wpid-PastedGraphic8-2012-09-29-14-561.tiff

wpid-PastedGraphic9-2012-09-29-14-561.tiff

Damit wurde folgendes Skelett generiert:

wpid-PastedGraphic10-2012-09-29-14-561.tiff

Jetzt muss noch die Datenbank erzeugt werden. Das geht über „rake task“ „db:migrate„.

wpid-PastedGraphic12-2012-09-29-14-561.tiff

wpid-PastedGraphic13-2012-09-29-14-561.tiff

wpid-PastedGraphic14-2012-09-29-14-561.tiff
wpid-PastedGraphic15-2012-09-29-14-561.tiff

Unter http://localhost:3000/posts haben wir damit bereits eine Datenbank-gestützte Webanwendung:

wpid-PastedGraphic16-2012-09-29-14-561.tiff
die auch schon funktioniert:
wpid-PastedGraphic17-2012-09-29-14-561.tiff
und folgendes Ergebnis liefert:
wpid-PastedGraphic18-2012-09-29-14-561.tiff
In RubyMine gibt es eine Datenbank-Konsole, in der man die Einträge verfolgen kann:

wpid-PastedGraphic19-2012-09-29-14-561.tiff
Weiterhin ist die rails console ein unverzichtbares Entwicklungswerkzeug:

wpid-PastedGraphic20-2012-09-29-14-561.tiff

Die „rails console“ stellt einem die gesamte Laufzeit-Umgebung des laufenden Rails-Servers zur Verfügung:

wpid-PastedGraphic21-2012-09-29-14-561.tiff
was dem Entwickler in der Laufzeit-Umgebung von Rails allerlei Experimente erlaubt:

wpid-PastedGraphic22-2012-09-29-14-561.tiff
Jedes Objekt in Ruby versteht aber auch die Methode „methods„, falls man nicht weiß, welche Sprache das gewählte Objekt spricht:

wpid-PastedGraphic27-2012-09-29-14-561.tiff

In der Datenbank wurde also nicht nur eine Tabelle „posts“ mit dem Feld „title“ angelegt, in Rails gibt es auch ein Modell „Post“:

wpid-PastedGraphic26-2012-09-29-14-561.tiff

Das Model „Post“ versteht eine ganze Reihe von Methoden betreffend das Feld „title“:

wpid-PastedGraphic25-2012-09-29-14-561.tiff
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.

Dieser Beitrag wurde unter Informatik, Internet, Lehre, Web Engineering veröffentlicht. Setze ein Lesezeichen auf den Permalink.