|
Inhaltsübersicht |
6 |
|
|
Inhaltsverzeichnis |
8 |
|
|
Vorwort |
14 |
|
|
Danksagung |
16 |
|
|
Über uns |
18 |
|
|
1 Einleitung |
20 |
|
|
1.1 Motivation |
20 |
|
|
1.2 Produktivität folgt Motivation folgt Spaß |
21 |
|
|
1.3 Ein Framework wird extrahiert |
22 |
|
|
1.4 Agile Softwareentwicklung |
23 |
|
|
1.5 Wer dieses Buch lesen sollte |
23 |
|
|
1.6 Wegweiser |
23 |
|
|
2 Von der Idee zur Implementierung |
26 |
|
|
2.1 Die Idee hinter der Webanwendung |
26 |
|
|
2.2 Storycards und Anforderungsgeschichten |
27 |
|
|
2.3 Was spricht für Ruby on Rails? |
29 |
|
|
2.4 Rails aus PHP- und Java-Entwickler Sicht |
31 |
|
|
3 Grundlagen |
34 |
|
|
3.1 Installation von Rails |
34 |
|
|
3.1.1 Windows |
34 |
|
|
3.1.2 Mac OS X |
37 |
|
|
3.1.3 Linux/Unix |
41 |
|
|
3.2 Applikationsrahmen und Verzeichnisstruktur |
43 |
|
|
3.3 Umgebungen |
45 |
|
|
3.4 Datenbankkonfiguration |
45 |
|
|
3.5 Arbeitsumgebung |
47 |
|
|
3.5.1 Editoren |
48 |
|
|
3.5.2 IDEs |
48 |
|
|
3.5.3 Die Qual der Wahl |
50 |
|
|
4 Ein Praxisbeispiel |
54 |
|
|
4.1 Gerüstbau |
54 |
|
|
4.1.1 Objektrelationales Mapping |
60 |
|
|
4.1.2 Rails Console |
60 |
|
|
4.1.3 Scaffolding |
63 |
|
|
4.1.4 Model-View-Controller |
67 |
|
|
4.2 Migration, Validierung und Layouts |
68 |
|
|
4.2.1 Validierung |
69 |
|
|
4.2.2 Callbacks |
74 |
|
|
4.2.3 Observer |
75 |
|
|
4.2.4 Weitere Migrationen |
76 |
|
|
4.2.5 CRUD und Finder |
80 |
|
|
4.2.6 Durch die Controller in die Views |
84 |
|
|
4.3 Testen ist besser |
99 |
|
|
4.3.1 Was sind Tests |
99 |
|
|
4.3.2 Modelle testen |
101 |
|
|
4.3.3 Aufrufen mehrerer Unit-Tests auf einmal |
108 |
|
|
4.3.4 Controller testen |
108 |
|
|
4.4 Routes und der REST |
115 |
|
|
4.4.1 Was passiert hier eigentlich? |
115 |
|
|
4.4.2 Routing |
117 |
|
|
4.4.3 Routes testen |
121 |
|
|
4.4.4 Simply RESTful |
122 |
|
|
4.5 Zugang beschränken |
135 |
|
|
4.5.1 Authentifizierung |
136 |
|
|
4.5.2 Filter |
137 |
|
|
4.5.3 Session |
141 |
|
|
4.5.4 Integrität testen |
145 |
|
|
4.6 Web 2.0! Ajax! |
149 |
|
|
4.6.1 Eine erste schnelle Demonstration |
152 |
|
|
4.6.2 Observer |
157 |
|
|
4.6.3 Callbacks |
158 |
|
|
4.6.4 Effekte! |
161 |
|
|
4.6.5 Noch einmal auf Anfang: Ajax-Basics |
162 |
|
|
4.6.6 RJS |
166 |
|
|
4.6.7 Skriptakulöser In-Place-Editor |
169 |
|
|
4.6.8 Ziehen und fallen lassen |
169 |
|
|
4.6.9 Webdesign 2.0 |
172 |
|
|
4.7 Verbindungen eingehen |
175 |
|
|
4.7.1 Amazon Web Services |
176 |
|
|
4.7.2 Action Web Service |
179 |
|
|
4.7.3 ActionMailer |
186 |
|
|
4.8 Internationalisierung |
193 |
|
|
4.8.1 Einleitung |
193 |
|
|
4.8.2 Grundsätzliches zur Internationalisierung von Webseiten |
194 |
|
|
4.8.3 Vorbereitung |
196 |
|
|
4.8.4 Vereinfachte Lokalisation |
199 |
|
|
4.8.5 Lokalisation für mehrere Sprachen |
201 |
|
|
4.8.6 Globalize |
209 |
|
|
4.8.7 Ausblick |
210 |
|
|
4.9 Auslieferung |
211 |
|
|
4.9.1 Entwicklen, Testen, Betreiben |
211 |
|
|
4.9.2 Testsystem |
212 |
|
|
4.9.3 Eine Zeitmaschine namens Subversion |
213 |
|
|
4.9.4 Integrationstests und Continuous Integration |
220 |
|
|
4.9.5 Deployment |
221 |
|
|
4.9.6 Webserver |
225 |
|
|
4.9.7 Datenbankserver |
228 |
|
|
4.9.8 Sicherheitsaspekte |
228 |
|
|
4.9.9 Geschwindigkeitsaspekte |
232 |
|
|
4.9.10 Hosting |
239 |
|
|
4.9.11 Monitoring und Prolog |
240 |
|
|
4.9.12 Abschluss |
241 |
|
|
5 Rails-Goodys |
244 |
|
|
5.1 ActiveRecord - was es noch kann |
244 |
|
|
5.1.1 Modelle als Join-Table |
244 |
|
|
5.1.2 Polymorphe Gestalten |
246 |
|
|
5.1.3 acts_as_list |
248 |
|
|
5.1.4 acts_as_tree |
249 |
|
|
5.1.5 Transaktionen |
250 |
|
|
5.2 ActionView-Goodys |
251 |
|
|
5.2.1 Datums- und Zahlenformatierungen |
251 |
|
|
5.2.2 Text-Helpers |
252 |
|
|
5.3 Plugins |
252 |
|
|
5.3.1 Plugins Installieren |
253 |
|
|
5.3.2 Acts as ... |
254 |
|
|
5.3.3 Sonstiges |
257 |
|
|
6 Rails erweitern |
262 |
|
|
6.1 Eigene Plugins |
262 |
|
|
6.1.1 Den Generator anwerfen |
263 |
|
|
6.2 Eigene Generatoren |
266 |
|
|
6.2.1 Die Idee |
268 |
|
|
6.3 Erweiterungen verteilen |
271 |
|
|
6.4 Generatoren vs. Plugins |
272 |
|
|
A Anhang |
274 |
|
|
A.1 Ruby für Rails |
274 |
|
|
A.1.1 Appetithappen |
274 |
|
|
A.1.2 Grundsätzliches |
276 |
|
|
A.1.3 Alles ist ein Objekt |
278 |
|
|
A.1.4 Basistypen |
278 |
|
|
A.1.5 Arrays/Hashes/Iteratoren |
279 |
|
|
A.1.6 Iteratoren |
280 |
|
|
A.1.7 Reguläre Ausdrücke |
281 |
|
|
A.1.8 Klassen/Objekte/Methoden |
282 |
|
|
A.1.9 Klassen erweitern |
285 |
|
|
A.1.10 Duck Typing und Metaprogramming |
286 |
|
|
A.1.11 Exceptions |
287 |
|
|
A.2 Rails-Werkzeug-Referenz |
288 |
|
|
A.2.1 Rake-Tasks |
288 |
|
|
A.2.2 Skripte |
290 |
|
|
A.2.3 Rails-Generator |
290 |
|
|
A.2.4 Plugins |
291 |
|
|
A.2.5 Migration |
291 |
|
|
A.3 Capistrano-Referenz |
292 |
|
|
A.3.1 Capistrano-Tasks |
292 |
|
|
A.3.2 Capistrano-Variablen |
293 |
|
|
A.3.3 Capistrano-Befehle |
294 |
|
|
A.4 Ruby on Rails auf dem Server |
294 |
|
|
A.5 Inhalt der DVD-ROM |
297 |
|
|
A.5.1 Ordnerstruktur |
298 |
|
|
A.6 Quellen |
299 |
|
|
A.6.1 Rails im Internet |
299 |
|
|
A.6.2 Rails-Community |
299 |
|
|
Stichwortverzeichnis |
302 |
|
|
Mehr eBooks bei www.ciando.com |
0 |
|