Rapid Web Development mit Ruby on Rails

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Thomas Baustert
Publisher: Hanser Fachbuchverlag
Year: 2006

Language: English
Pages: 437

Inhaltsverzeichnis......Page 8
Vorwort......Page 18
Vorwort zur 2. Auflage......Page 20
Vorwort zur 3. Auflage......Page 22
Danksagung......Page 24
Kapitel 1 Einleitung......Page 26
1.1 Für wen dieses Buch bestimmt ist......Page 27
1.2 Organisation des Buches......Page 28
1.4 Feedback......Page 30
2.1 Was ist Ruby on Rails?......Page 32
2.2.1 Komponenten und Zusammenspiel......Page 35
2.2.3 Active Record......Page 36
2.3.1 Windows......Page 37
2.3.6 Glückwunsch! Willkommen an Bord!......Page 38
Kapitel 3 Hands-on Rails......Page 40
3.2 Domain-Modell......Page 41
3.3 OnTrack Product Backlog......Page 42
3.4 Aufsetzen der Infrastruktur......Page 43
3.5.1 Modell erzeugen......Page 45
3.5.2 Datenbankmigration......Page 47
3.5.3 Controller......Page 51
3.6 Iterationen hinzufügen......Page 52
3.8 Iterationen anzeigen......Page 59
3.9 Iterationen bearbeiten und löschen......Page 61
3.10 Tasks hinzufügen......Page 64
3.11 Tasks anzeigen, bearbeiten und löschen......Page 67
3.12 Struktur in die Seiten bringen......Page 69
3.13 Validierung......Page 70
3.14 Benutzerverwaltung......Page 74
3.15 Login......Page 76
3.16 Tasks zuweisen......Page 79
3.17 Endstand und Ausblick......Page 80
4.1 Active Record-Klassen......Page 82
4.1.1 Mehr über Modellattribute......Page 84
4.1.2 Mehr über Primärschlüssel......Page 85
4.1.4 Mehr über Tabellennamen......Page 86
4.3 Die Rails-Konsole......Page 88
4.4 Objekte erzeugen, laden, aktualisieren und löschen......Page 89
4.4.2 Objekte laden......Page 90
4.4.3 Objekte aktualisieren......Page 91
4.5.1 Suchbedingungen: conditions......Page 93
4.5.2 SQL-Injection vermeiden......Page 95
4.5.5 Seitenweise: limit und offset......Page 96
4.5.6 Weitere Parameter: joins und include......Page 97
4.6 Dynamische Finder......Page 98
4.7 Kann ich weiterhin SQL verwenden?......Page 99
4.8 Metadaten – Daten ¨uber Daten......Page 100
4.9.1 Grundsätzliches......Page 101
4.9.2 1:1-Beziehungen: has one – belongs to......Page 103
4.9.3 1:N-Beziehungen: has many – belongs to......Page 109
4.9.4 N:M-Beziehungen: has and belongs to many......Page 115
4.9.5 Polymorphe Assoziationen: has many – belongs to......Page 119
4.9.6 has many :through......Page 122
4.10 Aggregation......Page 124
4.11 Vererbung......Page 125
4.12 Transaktionen......Page 128
4.13 Von Bäumen und Listen......Page 130
4.13.1 acts as list......Page 131
4.13.2 acts as tree......Page 133
4.14 Validierung......Page 135
4.14.1 Validierungs-Klassenmethoden......Page 136
4.15 Callbacks......Page 140
4.15.2 Callback-Makros......Page 141
4.15.3 Observer......Page 143
4.16.1 Optimistisches Locking......Page 144
5.1 Controller-Grundlagen......Page 146
5.1.1 Actions......Page 147
5.1.2 Responses......Page 148
5.2.1 Vom Controller zum View......Page 151
5.2.2 Vom View zum Controller......Page 152
5.2.3 Aus der Action in den View und zurück......Page 154
5.3 Redirects......Page 155
5.4 GET vs. POST......Page 156
5.5 Unterschiedliche Response-Formate: respond to......Page 158
5.6 Zugriff auf Datens¨atze einschr¨anken......Page 160
5.7 Ausnahme fangen mit rescue from......Page 161
5.8 Sessions......Page 162
5.8.1 Session-Daten löschen......Page 164
5.9 Der Flash-Speicher......Page 165
5.10 Filter......Page 166
5.10.1 Around-Filter......Page 167
5.10.2 Bedingungen......Page 168
5.10.4 Filtervererbung......Page 169
5.10.5 Filterketten......Page 170
5.11 HTTP-Authentifikation......Page 171
5.12.1 Routing......Page 172
5.12.2 Anpassung des Routings......Page 174
5.12.4 Named Routes......Page 175
5.12.5 URL-Generierung......Page 177
5.13 Layout......Page 178
5.13.2 Explizite Layoutzuweisung......Page 179
5.13.4 Action-spezifische Layouts......Page 180
5.14.1 Die Methode send data......Page 181
5.14.3 Unsichere Dateidownloads verhindern......Page 182
5.16 Rails-Konsole für Controller nutzen......Page 183
6.1 HTML-Templates......Page 186
6.2 Helper-Module......Page 188
6.3.1 Formulare......Page 190
6.3.2 Schutz vor Cross-Site Request Forgery......Page 192
6.3.3 Formular-Helper mit Bezug zu Modellen......Page 193
6.3.4 Formular-Helper ohne Bezug zu Modellen......Page 195
6.3.6 Texte und Zahlen......Page 196
6.3.7 Datum und Zeit......Page 197
6.3.8 Auswahlboxen......Page 198
6.3.9 Verweise und URLs......Page 200
6.3.10 Ressourcen einbinden......Page 202
6.3.12 Code speichern und wiederverwenden......Page 203
6.3.14 HTML-Code filtern......Page 204
6.4.1 Layout aus Views beeinflussen......Page 205
6.5 Partial Views......Page 206
6.6 Anzeige Fehlermeldungen......Page 210
6.7 XML-Templates......Page 211
6.9 Caching......Page 212
6.9.2 Action-Caching......Page 213
6.9.3 Fragment-Caching......Page 215
6.9.6 Action Cache Plugin......Page 218
Kapitel 7 RESTful Rails......Page 220
7.1 Was ist REST?......Page 221
7.3 Was ist neu?......Page 222
7.5 Ressource Scaffolding......Page 223
7.7 Der Controller......Page 224
7.7.1 REST-URLs......Page 225
7.7.2 REST-Actions verwenden respond to......Page 226
7.7.3 Accept-Feld im HTTP-Header......Page 227
7.7.4 Formatangabe via URL......Page 228
7.8 REST-URLs in Views......Page 229
7.8.1 New und Edit......Page 230
7.8.2 Path-Methoden in Formularen: Create und Update......Page 231
7.8.3 Destroy......Page 233
7.9 URL-Methoden im Controller......Page 234
7.10.2 Customizing......Page 235
7.11 Verschachtelte Ressourcen......Page 236
7.11.1 Anpassung des Controllers......Page 238
7.11.2 Neue Helper für verschachtelte Ressourcen......Page 239
7.11.3 Zufügen neuer Iterationen......Page 241
7.11.4 Bearbeiten existierender Iterationen......Page 243
7.12 Eigene Actions......Page 244
7.13 Eigene Formate......Page 246
7.14 RESTful AJAX......Page 247
7.15 Testen......Page 249
7.16 RESTful Clients: ActiveResource......Page 250
7.17 Abschließend......Page 251
Kapitel 8 Internationalisierung......Page 252
8.2.2 Locale......Page 253
8.3 Checkliste......Page 254
8.4 Internationalisierung vorbereiten......Page 255
8.5 Ruby Gettext-Package......Page 256
8.5.2 Texte übersetzen......Page 257
8.5.4 Anwendung und Gettext zusammenbringen......Page 262
8.5.6 Controller......Page 263
8.5.7 Modelle......Page 264
8.5.8 Dynamische Texte und Pluralisierung......Page 266
8.5.9 Datum, Zahlen und Währungen......Page 268
8.5.10 Wochen- und Monatsnamen......Page 270
8.5.11 Sortierung......Page 272
8.5.12 Zusammenfassung......Page 273
9.1.1 E-Mail erstellen......Page 274
9.1.2 E-Mail-Objekt erzeugen......Page 278
9.1.3 E-Mail versenden......Page 279
9.1.4 Testen......Page 281
9.1.5 Tipp zum zuverlässigen E-Mail-Versand......Page 282
9.1.6 Multipart E-Mails......Page 283
9.2 E-Mail-Empfang......Page 285
9.2.1 E-Mail empfangen......Page 286
9.2.2 Empfang testen......Page 287
Kapitel 10 Ajax......Page 288
10.1 Ajax und Rails......Page 290
10.2 Hello, Ajax World......Page 291
10.3.1 Task-Schnellerfassung......Page 292
10.4 Feldbeobachter......Page 295
10.4.1 Beispiel: Tasks filtern......Page 297
10.5 Callback-Methoden......Page 299
10.6.1 Einkaufen per Drag and Drop......Page 300
10.6.2 Sortieren per Drag and Drop......Page 303
10.7 Autocompletion......Page 306
10.8 RJS Templates......Page 307
10.8.1 Hinzufügen von Tasks visuell optimieren......Page 308
10.8.2 Weitere Techniken......Page 311
10.8.3 Debugging und Testen......Page 314
10.9 Zusammenfassung und Ausblick......Page 315
11.1.1 Umgebung definieren......Page 316
11.1.4 Produktion......Page 317
11.1.5 Umgebung hinzufügen......Page 318
11.2.2 Webserver Cluster......Page 319
11.2.3 Apache und Mongrel......Page 320
11.2.4 Alternativen......Page 323
11.3 Skalierung......Page 324
11.4 Session-Speicher......Page 325
11.5 Tipps zur Performanz......Page 326
11.6 Sicherheit......Page 327
11.8 Wartung......Page 330
11.9 Überwachung......Page 331
Kapitel 12 Deployment mit Capistrano (und Subversion)......Page 334
12.1.1 Voraussetzungen......Page 335
12.1.3 Anwendung Capistrano-ready machen......Page 337
12.1.4 Konfiguration......Page 338
12.1.6 Erstes Deployment......Page 340
12.1.7 Fallstricke......Page 343
12.2 Datenbanksetup und Migration......Page 344
12.4 Tasks......Page 345
12.4.1 Ausführen von Tasks......Page 346
12.4.2 Mehr über run und sudo......Page 348
12.4.4 Transaktionen und Rollbacks......Page 349
12.4.6 Tasks erweitern: Before- und After-Tasks......Page 350
12.5 Variablen......Page 351
12.6.1 Spawner......Page 352
12.7.1 Eine ”persistente“ Datenbank-Konfiguration......Page 353
12.8 Capistrano-Referenz......Page 355
12.9 Capistrano-Konfiguration: deploy.rb......Page 356
13.1 Unit Tests – eine Definition......Page 358
13.2 Ein Beispiel......Page 359
13.3 Warum testen?......Page 360
13.4 Test::Unit......Page 361
13.4.1 Strukturierung von Unit Tests......Page 362
13.4.3 Ausführen der Tests......Page 364
13.5 Testgetriebene Softwareentwicklung......Page 365
13.5.2 Beispiel......Page 367
13.6 Retrospektive......Page 369
14.1 Generierte Testklassen......Page 370
14.2 Testdatenbank......Page 371
14.4 Eine Programmierepisode......Page 372
14.4.1 Entwicklung einer Modellklasse......Page 373
14.4.2 Entwicklung des Controllers......Page 377
14.4.3 Programmierung des Views......Page 378
14.4.4 Geänderte Anforderungen......Page 380
14.4.5 Retrospektive......Page 386
14.5.1 Struktur und Elemente von Modelltests......Page 387
14.5.2 Testmethoden......Page 388
14.5.3 Testdaten – Fixtures......Page 389
14.5.5 Testrezepte für Modelle......Page 392
14.6.1 Testmethoden......Page 398
14.6.2 Kontrollfluss-Assertions......Page 399
14.6.3 Routing-Assertions......Page 401
14.6.5 Template-Assertions......Page 402
14.6.6 Testrezepte für Controller und Views......Page 404
14.7 Integrationstests......Page 408
14.7.1 Test-DSLs......Page 410
14.7.2 Sessions......Page 411
14.9 Mock-Objekte......Page 412
14.10 Zusammenfassung......Page 413
14.11 Assertions – U¨ bersicht......Page 414
Anhang......Page 416
Literaturverzeichnis......Page 424
Stichwortverzeichnis......Page 426
Mehr eBooks bei www.ciando.com......Page 0