Ruby on Rails - Eine kurze Einführung

13
Ruby on Rails Thomas R. Koll http://ananasblau.com 3. OCWD Juli 2009 Eine kurze Einführung Montag, 13. Juli 2009

description

Eine kurze Einführung zum Webframework Ruby on Rails die im Rahmen eines Workshop gehalten wurde.

Transcript of Ruby on Rails - Eine kurze Einführung

Page 1: 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

Page 2: Ruby on Rails - Eine kurze Einführung

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

Page 3: Ruby on Rails - Eine kurze Einführung

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

Page 4: Ruby on Rails - Eine kurze Einführung

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

Page 5: Ruby on Rails - Eine kurze Einführung

Die ersten Schritte

• rails my_app

• ./script/server

• ./script/console

• ./script/generate

• rake (rake -T für mehr Optionen)

Montag, 13. Juli 2009

Page 6: Ruby on Rails - Eine kurze Einführung

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

Page 7: Ruby on Rails - Eine kurze Einführung

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

Page 8: Ruby on Rails - Eine kurze Einführung

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

Page 9: Ruby on Rails - Eine kurze Einführung

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

Page 10: Ruby on Rails - Eine kurze Einführung

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

Page 11: Ruby on Rails - Eine kurze Einführung

Montag, 13. Juli 2009

Page 12: Ruby on Rails - Eine kurze Einführung

Für Fortgeschrittene

• Rack

• REST

• Generatoren

• Plugins und Gems

• Meta-Programming

• Engines

Montag, 13. Juli 2009

Page 13: Ruby on Rails - Eine kurze Einführung

Tools für‘s deployment

• git+ssh (siehe github.com)

• apache mit passenger (mod_rails)

• capistrano

Montag, 13. Juli 2009