Ruby on Rails - Eine kurze Einführung
-
Upload
thomas-r-koll -
Category
Technology
-
view
1.447 -
download
1
description
Transcript of Ruby on Rails - Eine kurze Einführung
Ruby on Rails
Thomas R. Kollhttp://ananasblau.com3. OCWD Juli 2009
Eine kurze Einführung
Montag, 13. Juli 2009
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
Hauptbestandteile
• Rack
• ActiveRecord
• ActionView, ERB, HAML, liquid
• ActionController
• I18n, named scopes, rails templates
• RSpec, Cucumber, Test::Unit
• URLHelper, Routing, Generatoren, Plugins
Montag, 13. Juli 2009
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
Die ersten Schritte
• rails my_app
• ./script/server
• ./script/console
• ./script/generate
• rake (rake -T für mehr Optionen)
Montag, 13. Juli 2009
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
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
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
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
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
Montag, 13. Juli 2009
Für Fortgeschrittene
• Rack
• REST
• Generatoren
• Plugins und Gems
• Meta-Programming
• Engines
Montag, 13. Juli 2009
Tools für‘s deployment
• git+ssh (siehe github.com)
• apache mit passenger (mod_rails)
• capistrano
Montag, 13. Juli 2009