Ruby on Rails Einführung
Ruby (Sprache) auf Rails (Webframework)
MVC Architektur
Konvention statt Konfiguration
DRY-Prinzip
Weniger Code
Gute Testbarkeit
Ruby und Gems
Open Source
Ruby
Dynamisch Typisierte Sprache
Rein objektorientiert
Viele Einflüsse: Perl, Smalltalk, LISP
Wichtige Elemente:
Introspektion
Code-Blöcke und Lambdas
Erweiterung von Klassen at runtime
Rails MVC
Controller
Kontrollfluss Steuern (Action)
HTTP-Request Bearbeiten
Aufruf per Reflection => keine Konfiguration
Views Erzeugen
Der View Daten über Instanzvariablen bereit stellen.
Controller
Zugriff auf Parameter, Session, Cookies über params Hash
Filter, Filterketten (Aspektorientierte Programmierung)
Login, Autorisierung etc
before_action :require_login
Layout Zuweisung
Applikation
Controller
Action
Dynamisch bestimmen
Model
Domainobjekte
Active Record Pattern
Tabellenname = plural (Modelname)
Beziehen Attribute aus Datenbanktabelle
“Getter” und “Setter” werden dynamisch erzeugen
Modell-Relationen deklarativ: belongs_to, has_many
Vererbung: Single Table Inheritance
Assoziationen
1:1 has_one
1:N has_many
N:M has_many_and_belongs_to_many alternativ has_many :though
Bsp: book.chapters.first.title
Views
Präsentation von Modelling in HTML-Templates
Daten über Instanzvariablen
Embedded Ruby <%>
REST
Rails Style
Datenbank Migrationen
Datenbank unabhängige Definition des Schemas
Versionskontroller
Up-/Down-Migration auf bestimmte Version (jetzt eher change)
Daten bleiben erhalten bzw können modifiziert werden.
Live Coding Session
Die berühmte 15 minute blog application
Erfahren Sie mehr auf www.janbussieck.com
2. Ruby (Sprache) auf Rails (Webframework)
● MVC Architektur
● Konvention statt Konfiguration
● DRY-Prinzip
● Weniger Code
● Gute Testbarkeit
● Ruby und Gems
● Open Source
3. Ruby
● Dynamisch Typisierte Sprache
● Rein objektorientiert
● Viele Einflüsse: Perl, Smalltalk,
LISP
● Wichtige Elemente:
○ Introspektion
○ Code-Blöcke und Lambdas
○ Erweiterung von Klassen at
runtime
7. Model
● Domainobjekte
● Active Record Pattern
● Tabellenname = plural (Modelname)
● Beziehen Attribute aus Datenbanktabelle
● “Getter” und “Setter” werden dynamisch erzeugen
● Modell-Relationen deklarativ: belongs_to, has_many
● Vererbung: Single Table Inheritance
8. Assoziationen
1:1 has_one
1:N has_many
N:M
has_many_and_belongs_to_many
alternativ has_many :though
Bsp: book.chapters.first.title
9. Views
● Präsentation von
Modelling in HTML-Templates
● Daten über
Instanzvariablen
● Embedded Ruby <%
...%>
11. Datenbank Migrationen
● Datenbank unabhängige
Definition des Schemas
● Versionskontroller
● Up-/Down-Migration auf
bestimmte Version (jetzt
eher change)
● Daten bleiben erhalten
bzw können modifiziert
werden.