Daniel Dengler
web developer
Ruby on Rails
Workshop SS 2009
„Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
Datenbanksystem nach Wahl
• SQLite (empfohlen für Entwicklung)
• MySQL
• PostgreSQL (empfohlen für Produktivbetrieb)
• IBM DB2
• Microsoft SQL Server
• Oracle
• Sybase
• Firebird
Details zur Installation
• http://www.ruby-lang.org/de/downloads/
• http://wiki.rubyonrails.org/getting-started/
installation
herokugarden.com
Virtuelle Entwicklungsumgebung
Einen Account bekommen
• Private Beta Version
• Wer noch keinen Account hat eine kurze
E-Mail an mich und ich lade die
Absenderadresse ein
• http://herokugarden.com/
Die erste Anwendung
rails Zielverzeichnis
rails Zielverzeichnis -d Datenbanktyp
Generiert automatisch das GrundgerĂĽst einer Rails-
Anwendung im gewĂĽnschten Verzeichnis.
Eine Anwendung starten
Im Hauptverzeichnis der Anwendung ausfĂĽhren:
ruby script/server
ruby script/server -u
(Mit Debugger zur Fehlersuche starten)
Die Anwendung ist unter http://localhost:3000
erreichbar, falls das Starten erfolgreich war.
Der Verzeichnisbaum
app
Enthält die eigentlich Anwendung (MVC)
• Präsentation (views & helpers)
• Steuerung (controllers)
• Datenmodelle (models)
Der Verzeichnisbaum
con g
Enthält Kon gurationsdateien für:
• Grundeinstellungen
• Umgebungen (Environments)
• Datenbank (database.yml)
• Routing (routes.rb)
Der Verzeichnisbaum
db
enthält Datenbank bezogene Inhalte:
• Datenbankschema
• Migrations
Der Verzeichnisbaum
doc
enthält die generierte Dokumentation der
Anwendung
lib
enthält zusätzliche Bibliotheken, die nicht in app
passen
Der Verzeichnisbaum
log
alle Log-Dateien der Anwendung. Sehr gut zur
Fehlersuche!
public
alle statischen Inhalte die abgerufen werden
können, wie etwa JavaScript-, CSS- oder Bild-
Dateien
Der Verzeichnisbaum
script
verschiedene Tools, wie etwa den Webserver
(script/server) oder Codegeneratoren (script/
generate)
tmp
temporäre Dateien der Anwendung
Der Verzeichnisbaum
test
enthält die automatischen Tests der Anwendung.
Dies ist ein wichtiger Bestandteil für größere
Webanwendungen im produktiven Umfeld.
Wird im Kurs aus ZeitgrĂĽnden kaum oder gar nicht
behandelt werden
Ruby on Rails API
Ruby on Rails API (durchsehen)
http://api.rubyonrails.org
API Dock Rails (suchen)
http://apidock.com/rails
Kontrollstrukturen
• Steuern den Programmablauf
• Wichtige Kontrollstrukturen in Ruby
• Entscheidungen: if, unless, case
• Schleifen: while, until, for, .each
if Bedingung
Anweisungen
elsif Bedingung
Anweisungen
else
Anweisungen
end
unless Bedingung
Anweisungen
end
Anweisungen if Bedingung
case Variable
when Bedingung
Anweisungen
when Bedingung
Anweisungen
else
Anweisungen
end
while Bedingung
Anweisungen
end
Klassen, Methoden & Objekte
• Klassen beginnen mit den Schlüsselwort class
und können verschiedene Methoden beinhalten
• Methoden beginnen mit dem Schlüsselwort def
• Die konkrete Instanz einer Klasse ist ein Objekt
Ergänzungen zu
Abschnitt 3
Numeric ausgewählte Methoden
Numeric ist Basisklasse fĂĽr alle Zahlendatentypen
Einfache mathematische Operationen:
• +, -, *, /
Konvertierung in andere Formate:
• to_s (wandelt in String)
• to_f (wandelt in Float)
• to_i (wandelt in Integer)
Blöcke
def blocking(&block)
yield
end
blocking do
puts \"foo\"
end
# >> foo
Blöcke
def blocking(&block)
3.times do
yield
end
end
blocking do
puts \"foo\"
end
# >> foo
# >> foo
# >> foo
Blöcke
def blocking(&block)
3.times do |i|
yield i
end
end
blocking do |k|
puts \"foo #{k}\"
end
# blocking {|k| puts \"foo #{k}\"}
# >> foo 0
# >> foo 1
# >> foo 2
Module als Funktionssammlung
module ModA
def dance
puts \"dance from #{self.class}\"
end
end
class B
include ModA
end
class C
include ModA
end
b = B.new
b.dance # >> dance from B
c = C.new
c.dance # >> dance from C
Module als Namensräume
module ModA
class A
def hi
puts \"Hi im from ModA\"
end
end
end
module ModB
class A
def hi
puts \"Hi im from ModB\"
end
end
end
b = ModA::A.new
b.hi # >> Hi from ModA
c = ModB::A.new
c.hi # >> Hi from ModB
Ruby API
Ruby Core API
http://www.ruby-doc.org/core/
Ruby Standard Library
http://www.ruby-doc.org/stdlib/
API Dock Ruby
http://apidock.com/ruby
Online Ruby Interpreter
• http://tryruby.hobix.com
• Geeignet um den Quellcode der Beispiele selbst zu
testen und sich mit der Sprache vertraut zu machen
• Bietet ein Ruby-Lern-Tutorial aus 8 Blöcken
• Bitte jetzt anfangen (und zu Hause fertig machen!)
• Lesen und merken sie sich die Anweisungen des
Anfangs, falls sie stecken bleiben sollten!
( help Kapitelnummer, Ctrl + D)
0 comments
Post a comment