Suchen und Finden
Service
Infos und Kontakt
Inhaltsverzeichnis
8
Vorwort
18
Vorwort zur 2. Auflage
20
Vorwort zur 3. Auflage
22
Danksagung
24
Kapitel 1 Einleitung
26
1.1 Für wen dieses Buch bestimmt ist
27
1.2 Organisation des Buches
28
1.3 Web-Site zum Buch
30
1.4 Feedback
30
Kapitel 2 Überblick und Installation
32
2.1 Was ist Ruby on Rails?
32
2.2 Bestandteile von Rails
35
2.2.1 Komponenten und Zusammenspiel
35
2.2.2 Action Pack
36
2.2.3 Active Record
36
2.2.4 Action Mailer
37
2.2.5 Ajax
37
2.2.6 Unit Tests
37
2.3 Installation
37
2.3.1 Windows
37
2.3.2 Mac
38
2.3.3 Linux
38
2.3.4 Aktualisierung
38
2.3.5 Datenbank
38
2.3.6 Glückwunsch! Willkommen an Bord!
38
Kapitel 3 Hands-on Rails
40
3.1 Entwicklungsphilosophie
41
3.2 Domain-Modell
41
3.3 OnTrack Product Backlog
42
3.4 Aufsetzen der Infrastruktur
43
3.5 Projekte erfassen, bearbeiten und löschen
45
3.5.1 Modell erzeugen
45
3.5.2 Datenbankmigration
47
3.5.3 Controller
51
3.6 Iterationen hinzufügen
52
3.7 Zwischenstand
59
3.8 Iterationen anzeigen
59
3.9 Iterationen bearbeiten und löschen
61
3.10 Tasks hinzufügen
64
3.11 Tasks anzeigen, bearbeiten und löschen
67
3.12 Struktur in die Seiten bringen
69
3.13 Validierung
70
3.14 Benutzerverwaltung
74
3.15 Login
76
3.16 Tasks zuweisen
79
3.17 Endstand und Ausblick
80
Kapitel 4 Active Record
82
4.1 Active Record-Klassen
82
4.1.1 Mehr über Modellattribute
84
4.1.2 Mehr über Primärschlüssel
85
4.1.3 Zusammengesetzte Primärschlüssel
86
4.1.4 Mehr über Tabellennamen
86
4.2 Active Record direkt verwenden
88
4.3 Die Rails-Konsole
88
4.4 Objekte erzeugen, laden, aktualisieren und löschen
89
4.4.1 Erzeugung
90
4.4.2 Objekte laden
90
4.4.3 Objekte aktualisieren
91
4.4.4 Objekte löschen
93
4.5 Mehr über Finder
93
4.5.1 Suchbedingungen: conditions
93
4.5.2 SQL-Injection vermeiden
95
4.5.3 Ordnung schaffen: order
96
4.5.4 Limitieren: limit
96
4.5.5 Seitenweise: limit und offset
96
4.5.6 Weitere Parameter: joins und include
97
4.6 Dynamische Finder
98
4.7 Kann ich weiterhin SQL verwenden?
99
4.8 Metadaten – Daten ¨uber Daten
100
4.9 Assoziationen
101
4.9.1 Grundsätzliches
101
4.9.2 1:1-Beziehungen: has one – belongs to
103
4.9.3 1:N-Beziehungen: has many – belongs to
109
4.9.4 N:M-Beziehungen: has and belongs to many
115
4.9.5 Polymorphe Assoziationen: has many – belongs to
119
4.9.6 has many :through
122
4.10 Aggregation
124
4.11 Vererbung
125
4.12 Transaktionen
128
4.13 Von Bäumen und Listen
130
4.13.1 acts as list
131
4.13.2 acts as tree
133
4.14 Validierung
135
4.14.1 Validierungs-Klassenmethoden
136
4.15 Callbacks
140
4.15.1 Überschreiben von Callback-Methoden
141
4.15.2 Callback-Makros
141
4.15.3 Observer
143
4.16 Konkurrierende Zugriffe und Locking
144
4.16.1 Optimistisches Locking
144
Kapitel 5 Action Controller
146
5.1 Controller-Grundlagen
146
5.1.1 Actions
147
5.1.2 Responses
148
5.2 Datenaustausch
151
5.2.1 Vom Controller zum View
151
5.2.2 Vom View zum Controller
152
5.2.3 Aus der Action in den View und zurück
154
5.3 Redirects
155
5.4 GET vs. POST
156
5.5 Unterschiedliche Response-Formate: respond to
158
5.6 Zugriff auf Datens¨atze einschr¨anken
160
5.7 Ausnahme fangen mit rescue from
161
5.8 Sessions
162
5.8.1 Session-Daten löschen
164
5.9 Der Flash-Speicher
165
5.9.1 Weitere Flash-Methoden
166
5.10 Filter
166
5.10.1 Around-Filter
167
5.10.2 Bedingungen
168
5.10.3 Filterklassen und Inline-Filter
169
5.10.4 Filtervererbung
169
5.10.5 Filterketten
170
5.11 HTTP-Authentifikation
171
5.12 Routing und URL-Generierung
172
5.12.1 Routing
172
5.12.2 Anpassung des Routings
174
5.12.3 Root Route
175
5.12.4 Named Routes
175
5.12.5 URL-Generierung
177
5.13 Layout
178
5.13.1 Automatische Layoutzuweisung
179
5.13.2 Explizite Layoutzuweisung
179
5.13.3 Dynamische Bestimmung des Layouts
180
5.13.4 Action-spezifische Layouts
180
5.14 Datei-Download
181
5.14.1 Die Methode send data
181
5.14.2 Die Methode send file
182
5.14.3 Unsichere Dateidownloads verhindern
182
5.15 Datei-Upload
183
5.16 Rails-Konsole für Controller nutzen
183
Kapitel 6 Action View
186
6.1 HTML-Templates
186
6.2 Helper-Module
188
6.3 Action View Helper
190
6.3.1 Formulare
190
6.3.2 Schutz vor Cross-Site Request Forgery
192
6.3.3 Formular-Helper mit Bezug zu Modellen
193
6.3.4 Formular-Helper ohne Bezug zu Modellen
195
6.3.5 HTML-Tags
196
6.3.6 Texte und Zahlen
196
6.3.7 Datum und Zeit
197
6.3.8 Auswahlboxen
198
6.3.9 Verweise und URLs
200
6.3.10 Ressourcen einbinden
202
6.3.11 JavaScript
203
6.3.12 Code speichern und wiederverwenden
203
6.3.13 Debugging
204
6.3.14 HTML-Code filtern
204
6.4 Layouts
205
6.4.1 Layout aus Views beeinflussen
205
6.5 Partial Views
206
6.6 Anzeige Fehlermeldungen
210
6.7 XML-Templates
211
6.8 RJS-Templates
212
6.9 Caching
212
6.9.1 Seiten-Caching
213
6.9.2 Action-Caching
213
6.9.3 Fragment-Caching
215
6.9.4 Was Sie nicht cachen sollten
218
6.9.5 Caching testen
218
6.9.6 Action Cache Plugin
218
Kapitel 7 RESTful Rails
220
7.1 Was ist REST?
221
7.2 Warum REST?
222
7.3 Was ist neu?
222
7.4 Vorbereitung
223
7.5 Ressource Scaffolding
223
7.6 Das Modell
224
7.7 Der Controller
224
7.7.1 REST-URLs
225
7.7.2 REST-Actions verwenden respond to
226
7.7.3 Accept-Feld im HTTP-Header
227
7.7.4 Formatangabe via URL
228
7.8 REST-URLs in Views
229
7.8.1 New und Edit
230
7.8.2 Path-Methoden in Formularen: Create und Update
231
7.8.3 Destroy
233
7.9 URL-Methoden im Controller
234
7.10 REST-Routing
235
7.10.1 Konventionen
235
7.10.2 Customizing
235
7.11 Verschachtelte Ressourcen
236
7.11.1 Anpassung des Controllers
238
7.11.2 Neue Helper für verschachtelte Ressourcen
239
7.11.3 Zufügen neuer Iterationen
241
7.11.4 Bearbeiten existierender Iterationen
243
7.12 Eigene Actions
244
7.12.1 Sind wir noch DRY?
246
7.13 Eigene Formate
246
7.14 RESTful AJAX
247
7.15 Testen
249
7.16 RESTful Clients: ActiveResource
250
7.17 Abschließend
251
Kapitel 8 Internationalisierung
252
8.1 Internationalisierung oder Lokalisierung?
253
8.2 Lokalisierung und Codes
253
8.2.1 Language Tag
253
8.2.2 Locale
253
8.3 Checkliste
254
8.4 Internationalisierung vorbereiten
255
8.5 Ruby Gettext-Package
256
8.5.1 Installation
257
8.5.2 Texte übersetzen
257
8.5.3 Die Schritte im Überblick
262
8.5.4 Anwendung und Gettext zusammenbringen
262
8.5.5 Lokalisierte Templates
263
8.5.6 Controller
263
8.5.7 Modelle
264
8.5.8 Dynamische Texte und Pluralisierung
266
8.5.9 Datum, Zahlen und Währungen
268
8.5.10 Wochen- und Monatsnamen
270
8.5.11 Sortierung
272
8.5.12 Zusammenfassung
273
Kapitel 9 Action Mailer
274
9.1 E-Mail-Versand
274
9.1.1 E-Mail erstellen
274
9.1.2 E-Mail-Objekt erzeugen
278
9.1.3 E-Mail versenden
279
9.1.4 Testen
281
9.1.5 Tipp zum zuverlässigen E-Mail-Versand
282
9.1.6 Multipart E-Mails
283
9.2 E-Mail-Empfang
285
9.2.1 E-Mail empfangen
286
9.2.2 Empfang testen
287
Kapitel 10 Ajax
288
10.1 Ajax und Rails
290
10.2 Hello, Ajax World
291
10.3 Ajax-Formulare
292
10.3.1 Task-Schnellerfassung
292
10.3.2 Ajax-Formulare und JavaScript
295
10.4 Feldbeobachter
295
10.4.1 Beispiel: Tasks filtern
297
10.5 Callback-Methoden
299
10.6 Drag and Drop
300
10.6.1 Einkaufen per Drag and Drop
300
10.6.2 Sortieren per Drag and Drop
303
10.7 Autocompletion
306
10.8 RJS Templates
307
10.8.1 Hinzufügen von Tasks visuell optimieren
308
10.8.2 Weitere Techniken
311
10.8.3 Debugging und Testen
314
10.9 Zusammenfassung und Ausblick
315
Kapitel 11 Produktion
316
11.1 Umgebungen in Rails
316
11.1.1 Umgebung definieren
316
11.1.2 Entwicklung
317
11.1.3 Test
317
11.1.4 Produktion
317
11.1.5 Umgebung hinzufügen
318
11.2 Webserver und Datenbank
319
11.2.1 Datenbank
319
11.2.2 Webserver Cluster
319
11.2.3 Apache und Mongrel
320
11.2.4 Alternativen
323
11.3 Skalierung
324
11.4 Session-Speicher
325
11.5 Tipps zur Performanz
326
11.6 Sicherheit
327
11.7 Auslieferung
330
11.8 Wartung
330
11.9 Überwachung
331
Kapitel 12 Deployment mit Capistrano (und Subversion)
334
12.1 Quickstart: Capistrano in 10 Minuten
335
12.1.1 Voraussetzungen
335
12.1.2 Installation von Capistrano
337
12.1.3 Anwendung Capistrano-ready machen
337
12.1.4 Konfiguration
338
12.1.5 Setup des entfernten Verzeichnisses
340
12.1.6 Erstes Deployment
340
12.1.7 Fallstricke
343
12.1.8 Nachfolgende Deployments
344
12.2 Datenbanksetup und Migration
344
12.3 Rollback eines Release
345
12.3.1 Rollback mit Datenbankmigration
345
12.4 Tasks
345
12.4.1 Ausführen von Tasks
346
12.4.2 Mehr über run und sudo
348
12.4.3 Weitere Task-Helper: delete, put und render
349
12.4.4 Transaktionen und Rollbacks
349
12.4.5 Überschreiben von Standardtasks
350
12.4.6 Tasks erweitern: Before- und After-Tasks
350
12.5 Variablen
351
12.6 FastCGI-Utilities
352
12.6.1 Spawner
352
12.6.2 Reaper
353
12.7 Gemeinsame Dateien – das Shared-Verzeichnis
353
12.7.1 Eine ”persistente“ Datenbank-Konfiguration
353
12.8 Capistrano-Referenz
355
12.9 Capistrano-Konfiguration: deploy.rb
356
Kapitel 13 Testgetriebene Entwicklungmit Ruby und Test::Unit
358
13.1 Unit Tests – eine Definition
358
13.2 Ein Beispiel
359
13.3 Warum testen?
360
13.4 Test::Unit
361
13.4.1 Strukturierung von Unit Tests
362
13.4.2 Wohin mit den Tests?
364
13.4.3 Ausführen der Tests
364
13.4.4 Unabhängigkeit von Tests
365
13.5 Testgetriebene Softwareentwicklung
365
13.5.1 TODO-Listen
367
13.5.2 Beispiel
367
13.6 Retrospektive
369
Kapitel 14 Testgetriebene Entwicklungmit Ruby on Rails
370
14.1 Generierte Testklassen
370
14.2 Testdatenbank
371
14.3 Testausführung mit Rake
372
14.4 Eine Programmierepisode
372
14.4.1 Entwicklung einer Modellklasse
373
14.4.2 Entwicklung des Controllers
377
14.4.3 Programmierung des Views
378
14.4.4 Geänderte Anforderungen
380
14.4.5 Retrospektive
386
14.5 Unit Tests – Testen von Modellklassen
387
14.5.1 Struktur und Elemente von Modelltests
387
14.5.2 Testmethoden
388
14.5.3 Testdaten – Fixtures
389
14.5.4 Transaktionale Fixtures
392
14.5.5 Testrezepte für Modelle
392
14.6 Funktionale Tests
398
14.6.1 Testmethoden
398
14.6.2 Kontrollfluss-Assertions
399
14.6.3 Routing-Assertions
401
14.6.4 Datencontainer-Assertions
402
14.6.5 Template-Assertions
402
14.6.6 Testrezepte für Controller und Views
404
14.7 Integrationstests
408
14.7.1 Test-DSLs
410
14.7.2 Sessions
411
14.8 Testen von E-Mails
412
14.9 Mock-Objekte
412
14.10 Zusammenfassung
413
14.11 Assertions – U¨ bersicht
414
Anhang
416
Literaturverzeichnis
424
Stichwortverzeichnis
426
Mehr eBooks vom gleichen Verlag
Nutzfahrzeug-Dieselmotoren, von: Rainer Kurek, Preis: 29,90 EUR
Optimierung von Spritzgießprozessen, von: Willi Steinko, Preis: 129,00 EUR
Das mobile Web, von: Tom Alby, Preis: 24,90 EUR
ZEND Framework im Einsatz, von: Rob Allen, Nick Lo, Steven Brown, Preis: 39,90 EUR
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion





















