Ruby on Rails: Erste Schritte: Vorarbeiten

Aus Wikibooks

Bevor wir die erste Web-Anwendung schreiben, müssen wir Ruby und Rails auf unserem Rechner installieren. Als Datenbank kann SQLite genügen (in Rails integriert). Für alle die erst einmal mit dem System spielen möchten, empfehle ich die vorübersetzten Ruby on Rails Pakete.

Gerade zu Beginn ist es sehr hilfreich, dass die vorübersetzten Pakete nicht nur Ruby und Rails enthalten, sondern auch eine SQL-Datenbank. Die Installation der vorübersetzten Pakete sollte keine Probleme bereiten, wenn doch, so hilft der Abschnitt Installation.

Wenn wir uns noch einen Text-Editor und eine Shell bereitlegen, können wir loslegen.

Web-Anwendung anlegen[Bearbeiten]

Rails speichert die verschiedenen Teile unserer Web-Anwendung im Dateisystem. Aber keine Angst, wir müssen dafür nicht viel tun. Eine Stärke von Rails sind die eingebauten Werkzeuge und so benötigen wir keine zusätzliche Entwicklungsumgebung, um eine Rails-Web-Anwendung anzulegen.

Mit dem Kommando

rails sport

erzeugen wir das Verzeichnis sport für die Rails-Web-Anwendung. Beim Aufruf werden mehrere Unterverzeichnisse und Dateien erstellt, welche für die Konfiguration, die Entwicklung, das Testen und den Betrieb benötigt werden.

 create  
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  components
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
      create  public/images
      create  public/javascripts
      create  public/stylesheets
      create  script/performance
      create  script/process
      create  test/fixtures
      create  test/functional
      create  test/mocks/development
      create  test/mocks/test
      create  test/unit
      create  vendor
      create  vendor/plugins
      create  Rakefile
      create  README
      create  app/controllers/application.rb
      create  app/helpers/application_helper.rb
      create  test/test_helper.rb
      create  config/database.yml
      create  config/routes.rb
      create  public/.htaccess
      create  config/boot.rb
      create  config/environment.rb
      create  config/environments/production.rb
      create  config/environments/development.rb
      create  config/environments/test.rb
      create  script/about
      create  script/breakpointer
      create  script/console
      create  script/destroy
      create  script/generate
      create  script/performance/benchmarker
      create  script/performance/profiler
      create  script/process/reaper
      create  script/process/spawner
      create  script/process/spinner
      create  script/runner
      create  script/server
      create  script/plugin
      create  public/dispatch.rb
      create  public/dispatch.cgi
      create  public/dispatch.fcgi
      create  public/404.html
      create  public/500.html
      create  public/index.html
      create  public/favicon.ico
      create  public/robots.txt
      create  public/images/rails.png
      create  public/javascripts/prototype.js
      create  public/javascripts/effects.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/controls.js
      create  doc/README_FOR_APP
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log

Die verschiedenen Ordner und Dateien werden wir noch im Einzelnen kennenlernen. Damit wir uns nicht verlaufen, eine kleine Übersicht der wichtigen Ordner:

app die Web-Anwendung mit Datenmodell, Steuerung und Darstellung
config Konfigurationen, wie Datenbankverbindung
public Allgemeine HTML- und JavaScript-Dateien
log Systemprotokolle
test Code zum Testen der Web-Anwendung
db Datenbankcode, wie Datenbank-Schema
script Rails Werkzeuge für die Entwicklung, den Test und den Betrieb

Feiern wir unseren ersten Erfolg und wechseln in das neue Verzeichnis und starten die Web-Anwendung mit

ruby sport/script/server webrick

In der Ausgabe sehen wir, dass der interne HTTP-Server Webrick auf dem lokalen Rechner unter Port 3000 zu erreichen ist.

=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2006-04-06 19:53:29] INFO  WEBrick 1.3.1
[2006-04-06 19:53:29] INFO  ruby 1.8.4 (2005-12-24) [powerpc-darwin8.5.0]
[2006-04-06 19:53:29] INFO  WEBrick::HTTPServer#start: pid=12489 port=3000

Das überprüfen wir unter http://localhost:3000/ und werden mit der Standardseite belohnt.

Neben Verweisen auf verschiedene Web-Seiten zu Ruby on Rails lesen wir auch, wie es weitergeht. Als erstes sollen wir eine Datenbankverbindung einrichten und anschließend Modelle und Steuerungen erstellen. Abschließend wird uns empfohlen, die Standardseite zu ersetzen.

Datenbankverbindung konfigurieren[Bearbeiten]

Neben dem Dateisystem für die Anwendung verwendet Rails für die Nutzdaten eine oder mehrere SQL-Datenbanken. Zur Zeit werden Mysql, Oracle, Postgresql, SQL Server, Sqlite2 und Sqlite3 unterstützt.

Da nicht jeder einen Datenbank-Server installieren möchte, setzen wir Sqlite ein. Diese Datenbank ist in die vorübersetzten Rails-Pakete integriert und steht uns unmittelbar zur Verfügung. Als Datenbankspeicher verwendet Sqlite eine Datei, welche über die Sqlite-Bibliothek angesprochen wird.

Falls sqlite nicht ansprechbar sein sollte (Adapter nicht vorhanden) kann man mit

gem install sqlite 

den Adapter nachinstallieren.

In der Datei config/database.yml ersetzen wir die gesamte Konfiguration durch eine Datenbankverbindung für die folgenden Entwicklungsarbeiten:

# config/database.yml
development:
  adapter: sqlite3
  dbfile: db/development.sqlite3

Als Datenbank soll eine Sqlite3-Datenbank/Bibliothek verwendet werden, welche die Daten in der Datei db/development.sqlite3 speichern soll. Hinweis: In der Datei ist die YAML-Syntax zu befolgen. Der Text ist mit zwei Leerzeichen einzurücken. Tabulatoren sind nicht erlaubt.

Hiermit haben wir alle nötigen Vorarbeiten abgeschlossen und können uns auf die eigentliche Web-Anwendung konzentrieren.