Ruby on Rails - Eine kurze Einführung

Post on 01-Nov-2014

1.447 views 1 download

Tags:

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

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