. Einleitung. 17
1. Einführung. 21
. 1.1. Wie entstand Rails?. 21
. 1.2. Warum Ruby?. 22
. 1.3. Model View Controller. 23
. 1.4. Persistenz. 24
. 1.5. Konvention statt Konfiguration. 25
. 1.6. Das DRY-Prinzip. 25
. 1.7. Neues in Rails 3.0. 26
. 1.8. Neues in Rails 3.1. 28
. 1.9. Top-Ten-Websites zu Ruby on Rails. 30
2. Installation. 33
. 2.1. Allgemeines. 33
. 2.2. Installation unter Mac OS X. 34
. 2.3. Installation unter Windows. 40
. 2.4. Installation unter Linux. 41
. 2.5. Editoren und Entwicklungsumgebungen. 43
3. Unsere erste Rails-Applikation. 47
. 3.1. Eine Rails-Applikation erstellen. 47
. 3.2. Der lokale Rails-Server. 48
. 3.3. Grundgerüst mit Scaffolds erstellen. 50
. 3.4. Die Applikation im Browser aufrufen. 51
. 3.5. Startseite festlegen. 54
. 3.6. HTTP-Authentifizierung. 54
4. Einführung in Ruby. 57
. 4.1. Was ist Ruby?. 57
. 4.2. Ruby-Code ausführen. 60
. 4.3. Grundlagen. 63
. 4.4. Kontrollstrukturen. 71
. 4.5. Klassen. 77
. 4.6. Module. 89
5. Rails Schritt für Schritt entdecken. 93
. 5.1. Rails-Projekt erstellen. 94
. 5.2. Weitere Views anlegen. 100
. 5.3. Layout. 102
. 5.4. Model. 107
. 5.5. CRUD (Create, Read, Update, Delete). 116
. 5.6. Fehlerbehandlung in Formularen. 132
. 5.7. Flash-Messages. 135
. 5.8. Refaktorisierung mit Helper und Partials. 138
. 5.9. Authentifizierung. 143
. 5.10. Jeder User hat seine eigenen Bookmarks. 153
. 5.11. Mehrsprachigkeit mit I18n. 158
6. Testen mit Cucumber. 169
. 6.1. Test Driven Development. 169
. 6.2. Eine Beispielapplikation. 171
7. Rails-Projekte erstellen und konfigurieren. 191
. 7.1. Generieren eines Rails-Projektes. 191
. 7.2. RubyGems managen mit Bundler. 202
. 7.3. Konfiguration von Rails-Applikationen. 207
. 7.4. Rails-Applikationen ausführen. 215
. 7.5. Rake-Tasks. 220
. 7.6. Versionsverwaltung. 227
. 7.7. Generatoren. 231
8. Datenbankzugriff mit ActiveRecord. 239
. 8.1. Einführung. 239
. 8.2. Generatoren. 249
. 8.3. Datenbankschema und Migrationen. 253
. 8.4. Getter- und Setter-Methoden. 266
. 8.5. Erstellen, bearbeiten und löschen. 269
. 8.6. Validierung. 272
. 8.7. Suchen. 280
. 8.8. Assoziationen. 296
. 8.9. Callbacks. 324
. 8.10. Vererbung. 326
9. Steuerzentrale mit ActionController. 331
. 9.1. Grundlagen. 331
. 9.2. Aufgaben des Controllers. 333
. 9.3. Filter. 347
10. Routing mit ActionDispatch. 351
. 10.1. Routing-Grundlagen. 351
. 10.2. Routing mit Ressourcen. 355
11. HTML5, Sass und CoffeeScript mit ActionView. 371
. 11.1. ERB-Templates. 372
. 11.2. Erstellung von Templates. 374
. 11.3. Helper. 375
. 11.4. Layouts. 395
. 11.5. Formulare. 399
. 11.6. Partials. 428
. 11.7. Haml als alternatives Template-System. 433
. 11.8. Asset Pipeline. 434
. 11.9. Stylesheets mit Sass. 440
. 11.10. JavaScript mit CoffeeScript. 444
12. E-Mails senden mit ActionMailer. 447
. 12.1. Beispielprojekt: Kontaktformular. 447
. 12.2. HTML-E-Mails. 459
. 12.3. Layouts. 460
. 12.4. E-Mails mit Anhängen. 461
. 12.5. Konfiguration. 463
13. Nützliche Helfer mit ActiveSupport. 465
. 13.1. Zahlen. 466
. 13.2. Zeichenketten. 472
. 13.3. Arrays. 474
. 13.4. Hashes. 476
. 13.5. Datentypunabhängig. 478
14. Webservices mit ActiveResource. 481
. 14.1. Was sind Webservices?. 481
. 14.2. Einen Webservice anbieten. 482
. 14.3. Zugriff auf Webservices mit ActiveResource. 485
15. Mehrsprachige Applikationen mit I18n. 487
. 15.1. Konfiguration. 487
. 15.2. Sprachauswahl. 488
. 15.3. Übersetzungsdateien. 488
. 15.4. Übersetzen und lokalisieren. 491
16. Unobtrusive JavaScript und Ajax mit jQuery. 501
. 16.1. JavaScript-Frameworks. 501
. 16.2. Unobtrusive JavaScript. 502
. 16.3. Ajax. 505
. 16.4. Beispiele. 509
17. Sicherheit, Deployment und Optimierung durch Caching. 517
. 17.1. Sicherheit. 517
. 17.2. Deployment. 525
. 17.3. Optimierung durch Caching. 529
. Anhang. 551
. A. Die wichtigsten Ruby-Klassen. 553
. Index. 601