1. Ruby on Rails
Eine kurze Einführung
Thomas R. Koll
http://ananasblau.com
3. OCWD Juli 2009
Montag, 13. Juli 2009
2. Facts
• Gestartet 2004 von David Heinemeier Hansson (DHH)
• Web-Framework um schnell Applikationen zu erstellen
• Konventionen vor Konfiguration
• Don‘t Repeat yourself (DRI)
• MVC und andere Patterns
• Starker Hang zu Domain Specific Languages
Montag, 13. Juli 2009
4. Setup
• One-click Installer for Ruby für Windows
• Mac OSX 10.5 hat schon ruby
• apt-get install ruby libruby irb ri sqlite3 rubygems
• sudo gem update --system
• sudo gem install rails rack rake
Montag, 13. Juli 2009
5. Die ersten Schritte
• rails my_app
• ./script/server
• ./script/console
• ./script/generate
• rake (rake -T für mehr Optionen)
Montag, 13. Juli 2009
6. Scaffolding
• Erstellt einfache Views, teils auch mit JS
• Erlaubt schnelles Prototyping
• aber besser HAML, ein paar Helper und alles selber
schreiben für mehr Freiheit.
• Moderner Ansatz im Webdevelopment:
Zuerst ein Design mit dem alle Seiten einverstanden sind.
Montag, 13. Juli 2009
7. Tests
• Unit-Tests für Models
• Functional Tests für Controller
• Integration Tests für‘s Zusammenspiel
• Zusätzlich Cucumber oder RSpec:
• Stories aus Sicht des Stakeholders
• Einfacher zu verstehen
Montag, 13. Juli 2009
8. Model
• Verbindung zur Datenbank, REST-API oder ähnliches
• Automatische get, set und ? Methoden
• new, create, save, find, update, count, exist?, destroy
• dynamische finder und auch find_or_create_by...
• named scopes, callbacks, counter_cache
Montag, 13. Juli 2009
9. Controller
• Empfängt die Requests vom Webserver/Rack
• before/after Filter, REST
• Holt Daten und gibt diese an die View weiter
Montag, 13. Juli 2009
10. Views
• Endformate: HTML, XML, iPhone, iCal, ics, rss, pdf, …
• Viele Layout-Engines: ERB, HAML, liquid, …
• Mehrere Layouts möglich (per Controller)
• Partials die wiederverwendet werden können
• Viele Helper z.b. für JavaScript
• content_for und yield
Montag, 13. Juli 2009