Ruby on Rails 3.1 Expertenwissen - Eine praxisorientierte Einführung in die Entwicklung mit Ruby on Rails
von: Stefan Sprenger, Kieran Hayes
dpunkt, 2012
ISBN: 9783864910739
Sprache: Deutsch
260 Seiten, Download: 3217 KB
Format: EPUB, PDF, auch als Online-Lesen
Mehr zum Inhalt
Ruby on Rails 3.1 Expertenwissen - Eine praxisorientierte Einführung in die Entwicklung mit Ruby on Rails
Vorwort | 6 | ||
Inhaltsverzeichnis | 8 | ||
1 Einleitung | 14 | ||
Zielsetzung | 14 | ||
Konventionen | 15 | ||
Was ist neu in Rails 3.1? | 16 | ||
Aufbau des Buchs | 20 | ||
Wer dieses Buch lesen sollte | 21 | ||
Wie man dieses Buch lesen sollte | 21 | ||
Webseite zum Buch | 21 | ||
Danksagungen | 22 | ||
2 Grundlagen | 24 | ||
Paradigmen und Vorgehensweisen | 24 | ||
Don't repeat yourself | 25 | ||
Convention over Configuration | 26 | ||
Architektur einer Rails-Anwendung | 27 | ||
Model-View-Controller | 27 | ||
Zusammenspiel einzelner Schichten | 28 | ||
REST | 30 | ||
Umgebungen | 32 | ||
Wichtige Kernmodule | 33 | ||
ActiveRecord | 34 | ||
ActiveModel | 35 | ||
ActiveSupport | 36 | ||
Railties | 36 | ||
ActionPack | 36 | ||
ActionMailer | 39 | ||
Ruby Version Manager | 40 | ||
Installation | 41 | ||
Ruby-Implementierungen installieren | 41 | ||
Verwalten der Gems | 42 | ||
RVM aktuell halten | 43 | ||
Gem-Verwaltung mit Bundler | 43 | ||
Rake | 45 | ||
Asset-Pipeline | 47 | ||
Zugriff auf Asset-Dateien | 48 | ||
Zusammenführen von Assets | 48 | ||
Vorverarbeitung | 49 | ||
Komprimierung | 50 | ||
Rails auf der Kommandozeile | 50 | ||
3 Rails in der Praxis | 54 | ||
Einleitung | 54 | ||
Vorstellung der Beispielanwendung | 54 | ||
Das Datenmodell | 55 | ||
Anwendung anlegen | 57 | ||
Anwendungsverzeichnis | 58 | ||
Initiale Konfigurationen | 61 | ||
Startseite anlegen | 62 | ||
Standardlayout einer Rails-Anwendung | 63 | ||
Verwalten der Stylesheets und JavaScript-Dateien | 64 | ||
Anpassen des Layouts | 66 | ||
Benutzerauthentifizierung | 68 | ||
Installation von devise | 68 | ||
Basiskonfiguration | 68 | ||
User-Model erstellen | 70 | ||
Views und Routen | 71 | ||
Benachrichtigungen | 72 | ||
Helfer für die Arbeit mit Benutzern | 73 | ||
Profilseite eines Benutzers | 73 | ||
Passwortbestätigung entfernen | 75 | ||
Authentifizierung per Login-Attribut | 75 | ||
Links verwalten | 78 | ||
Model anlegen | 79 | ||
Beziehungen zwischen Models | 80 | ||
Anlegen von Controllern und Views | 81 | ||
Neue Links und Routen anlegen | 83 | ||
Validierung der Models | 85 | ||
Gesamtübersicht aller Links | 87 | ||
Übersichtlichkeit dank Paginierung | 90 | ||
Links mit Tags kategorisieren | 92 | ||
Einführen neuer Models | 92 | ||
Beziehungen zwischen Tags und Links | 92 | ||
Verwendung eines virtuellen Attributs | 93 | ||
Autocomplete mit Ajax | 96 | ||
Unterschiedliche Ausgabeformate in einem Controller | 99 | ||
Fazit | 100 | ||
4 Alternative Komponenten | 102 | ||
Suchen mit Apache Solr | 102 | ||
Solr in das Beispielprojekt einbinden | 102 | ||
Suchen im Controller | 105 | ||
Das Suchformular | 106 | ||
Indexierung von Daten | 107 | ||
Highlighting der Suchergebnisse | 108 | ||
Suche verfeinern mit Facetten | 110 | ||
Fazit | 112 | ||
Rails 3 und NoSQL | 113 | ||
Wahl der NoSQL-Datenbank | 115 | ||
MongoDB – Aufbau und Prinzipien | 117 | ||
Der Objekt-Dokument-Mapper Mongoid | 118 | ||
Ein bestehendes Model mit Mongoid verwalten | 119 | ||
Benutzerverwaltung auf MongoDB umstellen | 122 | ||
Abfragen | 123 | ||
Observer | 124 | ||
Mongoid und Sunspot | 125 | ||
Besonderheiten von Mongoid | 125 | ||
Andere NoSQL-Datenbanken | 127 | ||
Fazit | 130 | ||
5 Tests und Qualitätssicherung | 132 | ||
Behavior Driven Development | 133 | ||
Die Prinzipien | 134 | ||
Ein üblicher Arbeitsablauf | 134 | ||
Verbreitete Werkzeuge | 136 | ||
Komponententests mit RSpec | 136 | ||
Grundlagen | 136 | ||
Aufbau der Tests | 137 | ||
Ausführen auf der Kommandozeile | 141 | ||
Anforderungen spezifizieren durch Matcher | 144 | ||
Mocks und Stubs | 148 | ||
Testen der Model-Schicht | 150 | ||
Testen der Controller-Schicht | 159 | ||
Testen der Helper-Schicht | 164 | ||
Testen des Routings | 168 | ||
Factory Girl als Fixture-Alternative | 170 | ||
Installation im Beispielprojekt | 171 | ||
Wie wird es verwendet? | 172 | ||
Sequenzen – fortlaufende Factories | 173 | ||
Beziehungen zwischen Factories | 174 | ||
Fazit | 175 | ||
Integrationstests mit Cucumber | 175 | ||
Cucumber mit Rails verwenden | 176 | ||
Cucumber-Features erstellen | 178 | ||
Unser erstes Feature | 178 | ||
Formulare testen | 180 | ||
Wiederverwendbare Steps benutzen | 180 | ||
Ein Bookmark speichern | 183 | ||
Mehrere Datensätze erstellen | 183 | ||
Tests durch Tags gruppieren | 184 | ||
JavaScript testen mit Selenium | 186 | ||
Fazit | 187 | ||
Metriken – Projekte überwachen | 188 | ||
Gängige Metriken für Rails-Anwendungen | 188 | ||
Metriken erstellen mit metric_fu | 190 | ||
Richtig einschätzen und verwenden | 191 | ||
6 Rails erweitern | 194 | ||
Eigene Models mit ActiveModel erstellen | 194 | ||
Validierung | 195 | ||
Serialisierung | 199 | ||
Verwendung innerhalb der Anwendung | 201 | ||
In Formularen verwenden | 204 | ||
Railties | 206 | ||
Verwenden der Railties-Schnittstelle | 206 | ||
Auslagern in ein eigenes RubyGem | 208 | ||
Generatoren selbst entwickeln | 209 | ||
Das Grundgerüst erstellen | 210 | ||
Templates | 210 | ||
Hooks zu anderen Generatoren | 213 | ||
Verwendung auf der Kommandozeile | 214 | ||
In ein Gem auslagern | 214 | ||
Rails-Engines | 217 | ||
Engine anlegen | 218 | ||
Aufbau | 218 | ||
Anwendungsschichten einer Engine | 219 | ||
Einbinden in die Rails-Anwendung | 221 | ||
Fazit | 222 | ||
7 Best Practices | 224 | ||
Während der Entwicklung | 224 | ||
Fat Models – Skinny Controllers | 224 | ||
Filter in Controllern | 226 | ||
Häufig verwendete Abfragen hinterlegen | 229 | ||
Model-Zustände mit Observern verfolgen | 231 | ||
Datenbank-Seeding | 234 | ||
Isoliertes Installieren von Gems | 235 | ||
Das Potenzial von RVM in Projekten ausreizen | 235 | ||
Vor Angriffen schützen | 236 | ||
SQL-Injections bei Ruby on Rails | 237 | ||
Cross-Site-Scripting verhindern | 238 | ||
Rechteüberprüfung beim Verwalten von Datensätzen | 239 | ||
Mass-Assignment von Model-Attributen | 241 | ||
Capistrano | 244 | ||
Konfiguration für die Beispielanwendung | 246 | ||
Wichtige Tasks | 248 | ||
Entwicklung eines eigenen Capistrano-Tasks | 248 | ||
Capistrano-Tasks durch Hooks erweitern | 249 | ||
Deployments durchführen | 250 | ||
Staging von Deployments | 250 | ||
Fazit | 253 | ||
Nützliche Weblinks | 254 | ||
Glossar | 255 |