Nov 30 2007
Eine einfache Ruby on Rails Anwendung mit Netbeans 6
Mit Rails 2 ist es sehr einfach geworden schnell eine kleine einfache Anwendung zu schreiben. Ich habe während des Studiums mit Eclipse und Netbeans gearbeitet und seit es bei Netbeans die Version 6 gibt mit Unterstützung für Rails bin ich begeistert von dieser IDE. Die IDE ist zwar nicht perfekt aber eignet sich wunderbar für Rails, speziell auch bei der Arbeit mit einem Debugger.
Kommen wir nun zum eigentlich Teil dieses Tutorials. Was sollst du am Ende gelernt haben:
- Erste Einblicke in die Arbeit mit Netbeans 6
- Eine Rails 2 Anwendung mit einer sqlite3 Datenbank erstellt
- Neugierig mehr über Rails zu erfahren
Es sind ein paar Vorkehrungen zu treffen, bevor man loslegen kann, denn um mit Rails zu arbeiten muss man ein paar Sachen herunterladen und installieren ( Netbeans bringt zwar Ruby und Rails im Installationspaket mit, damit kann man aber einige Funktionen nicht nutzen):
- Ruby und Rails kannst du am besten mit Hilfe der Anleitung installieren die auf der Railsentwicklerseite steht ( hier klicken ) auf der Seite die Schritte durchführen bis zu “Make your Application”
- Netbeans, mittlerweile in der Version 6.0.1 verfügbar kannst du hier herunterladen. Dort gibt es eine Spalte mit der Überschrift “Ruby”, diese Version von Netbeans heruterladen und installieren.
- Ich nehme für das Tutorial sqlite3, das ist schnell installiert und für so eine kleine beispielhafte Rails Anwendung eignet es sich hervorragend. Wenn du auf einem Mac Rechner bist gibt es bereits sqlite3 und du musst erst mal nichts herunterladen, alle Windows Anwender schauen bitte mal hier — ob Mac oder Windows Anwender, du musst dann noch per “gem install sqlite3-ruby” eine Art Treiber für sqlite installieren. Das ermöglicht Rails mit sqlite zusammen zu funktionieren.
Hat alles geklappt? Wenn nicht einfach einen Kommentar schreiben, dann kann ich helfen und später noch das Tutorial verbessern, wenn geklappt hat, super! Dann kann es weitergehen.
Du hast jetzt Ruby auf deinem Rechner und Rails danach installiert. rubygems ist auch drauf, das ist eine Art Verwaltungsprogramm, mit dem du Programme für Rails und auch Ruby nachladen kannst, werde ich in zukünftigen Tutorials noch näher drauf eingehen. Du hast auch sqlite3 drauf und das macht viele einfach, denn sqlite hat den Vorteil das es eine Datenbank ist die alle Daten in einer Datei speichert und somit einfach zu benutzen ist, für den Anfang also ein toller Startpunkt. Auch gut ist, dass jetzt Netbeans bei dir drauf und du damit sehr gut in die Arbeit mit Rails 2 starten kannst. Lass uns also anfangen!
Starte Netbeans 6 und gehe dann mal auf “Datei -> Einstellungen”. Dort wirst du ein Diamantensymbol finden in rot mit Ruby drunter, dort draufklicken. Wir müssen erst mal Netbeans mitteilen, dass es mit dem von dir gerade installierten Ruby und Rails zusammenarbeiten soll. Also du findest hier in der Ansicht “Platform” ein Eingabefeld da steht Ruby Interpreter vor, dort muss der Pfad zu dem Ruby Verzeichnis rein, dass sollte “c:\ruby\bin\ruby” sein. Den Pfad eintragen oder rechts über den Button suchen und dann mit Ok bestätigen.
Jetzt gehen wir zum nächsten Schritt über, gehe “Datei -> Neues Projekt” und wählst über Ruby und im rechten Fenster dann “Ruby on Rails Anwendung”, bzw. “Ruby on Rails Application” aus. Dann auf weiter, in der nächsten Ansicht geben wir den Namen ein, ich würde mal sagen “RailsFreunde”. Weiter unten ist ein Dropdown Menü, davor steht Database, hier mal als Datenbank sqlite3 auswählen. Der Rest kann so bleiben, wie er ist. Jetzt erneut aus weiter gehen und dann auf “Fertig”.
Netbeans 6 hat jetzt das Projekt und eine Reihe von Ordnern mit ein paar Inhalten erstellt. Das ist sozusagen die Grundlage, die man bei jeder Rails Anwendung braucht, denn Rails ist ein Framework, bietet also für den Entwickler eine Sammlung von Funktionen, die er beim Entwickeln nutzen kann. Rails übernimmt z.B. einen Großteil der Kommunikation mit der Datenbank, wie einfach es dann ist Tabellen zu erstellen und diese mit Daten zu füllen sehen wir jetzt, wenn wir die Rails Anwendungen mit Leben füllen.
Die Anwendung heisst RailsFreunde, denn wir bauen einfach mal eine kleine Anwendung, in der wir Personen speichern können mit Vornamen und Nachnamen. Die Person kann man später also eintragen, man kann diese editieren oder löschen und man kann sich alle Personen in einer Liste ausgeben lassen. Um diese ganzen Funktionen in die Rails Anwendung einzubauen gehen wir wie folgt vor:
- Mit einem Rechtsklick auf das RailsFreunde Projekt kommt ein Menü, hier ganz oben auf “Generieren”, bzw. “Generate” klicken.
- Wir machen uns die Sache einfach, daher bei dem PopUp Fenster im DropDown Menü “scaffold” auswählen.
- Jetzt bei Model Name in das Eingabefeld folgende Daten eingeben: freund vorname:string nachname:string spitzname:string
- Mit Ok bestätigen. Dann werden erst mal einige neue Dateien erzeugt, interessant zu wissen ist erst mal nur das jetzt noch ein Schritt fehlt und dann funktioniert die Anwendung!
- Letzter Schrit, bevor wir die Anwendung starten können ist, die Felder, die wir gerade angegeben haben in die Datenbank zu schreiben, das später darin unsere ganzen Namen gespeichert werden können. Dazu wieder einen rechtsklick auf den Projektnamen machen und jetzt “Run Rake Task -> db -> migrate” ausführen. Das erzeugt eine Datenbank und erstellt eine Tabelle mit dem Namen freunds und schreibt da die 3 Spalten rein, die wir oben angeben haben. Freunds wird die Tabelle benannt, wiel Rails nen ganz netten Mechanismus hat, denn in der Tabelle werden ja später alle Freunde gespeichert, da sind dann eine Mehrzahl von Freunden drin, da Rails englisch ist, hätte man es einfacher verstehen können mit friend. Ich trage einen friend ein und speichere den in der Tabelle wo alle meine friends drin sind. Nimmt man deutsche Wörter klingt das dann etwas komisch, man gewöhnt sich aber dran. Als fortgeschrittener Rails Anwender lässt sich das alles aber noch anpassen.
- Jetzt gehts los! Wir können uns die Anwendung ansehen: Wieder rechtsklick auf den ProjektNamen und auf “Run” gehen. Jetzt wird der Server gestartet, der unsere Web Anwendung laufen lässt, wenn Netbeans 6 es nicht geschafft hat einen Browser zu starten, dann schau einfach unten bei Netbeans ins Ausgabefenster, da sollte ein Hinweis stehen, wie du die WebAnwendung im Browser aufrufen kannst, meist ist das über http://localhost:3000 — da kommt dann erst mal eine schöne Willkommensnachricht.
Wir wollen aber das sehen was wir gerade erstellt haben und natürlich ein paar Freunde eingeben. Das ist ziemlich einfach, hinten an die URL von oben hängen wir noch freunds an, also http://localhost:3000/freunds und schon können wir einen neuen Freund hinzufügen, editieren, löschen oder alle ansehen! Coole Sache, oder?
Ich würde jetzt empfehlen ein bischen rumzuprobieren und sich die Ordnerstruktur ansehen. Es fehlen jetzt natürlich noch einige Erklärungen, wie alles so funktioniert und zusammenhängt, aber das möchte ich versuchen über die nächsten Tutorials dir näherzubringen.
Hallo Daniel,
habe Dein Tutorial “Eine einfache Einführung in RoR mit Netbeans” gelesen und wie Du schreibst auch danach ein wenig “rumprobiert”. Was mich nun im nächsten Schritt interessiert und was ich so bisher nicht lösen konnte: Wie realisiere ich in RoR eine Parent-Schild-Bziehung z.B. dergestalt: Erfassen eines Auftrages [Auftragskopf (Parent) plus N Auftragspositionen (Children). Dabei soll sowohl der Auftrag als auch die Auftrgasposotionen in 1 View angezeigt werden und änderbar sein.] Für so eine Aufgabenstellung finde ich leider kein Beispiel/Tutorial. Ist dies mit RoR nicht machbar?
Moin Christoph, doch das ist in jedem Falle möglich. Es geht ungefähr so: Du erstellst ein model ‘auftrag’ und ein model ‘auftragspositionen’. Im model ‘auftrag’ fügst du oben ein has_many :auftragspositionens und beim model ‘auftragspositionen’ fügst du ein belongs_to :auftrag - Jetzt müsstest du nur noch in der Tabelle ‘auftragspositionens’ eine Spalte erstellen, in der die id vom Auftrag steht, die sollte auftrag_id heissen. Damit Sind die beiden model Klassen verknüpft. Jetzt kannst du in einer View eine Form erstellen, in der du Auftrag und die Positionen erstellen kannst, beim Speichern greifst du auf das vorher erstellte model zu, Rails sorgt dabei dann für die Verknüpfung von Auftrag und Position. Das Anzeigen des Auftrags läuft dann so ab, dass du dir aus der Datenbank Auftrag und die Positionen dazu holst und diese in der View dann ausgibst. So wie anderen Frameworks hängt zwischen View und Model noch der Controller, hier holst du dir alle Daten aus dem Model, die du für die View brauchst, bzw. hierüber speicherst du alle Daten die aus der View kommen im model.
Das war jetzt alles sehr theoretisch, aber da sind mehrere Sachen zu erledigen, bevor es geht, ich muss mal schauen, wollte da eh mal ein Tutorial zu bauen.
Auf http://www.railscasts.com kannst du auf VideoPodcasts zugreifen, dort beschreibt der Ryan Bates übrigens wie man solche Forms baut, die du suchst. Es gibt auch ziemlich aktuell ein deutsches Ruby on Rails Buch, da weiss ich aber nicht wie gut das ist.