Ruby on Rails 2

Das Entwickler-Handbuch
Media-Kombination
699 Seiten
2008
Galileo Press
978-3-89842-779-1 (ISBN)

Lese- und Medienproben

Ruby on Rails 2 - Hussein Morsy, Tanja Otto
39,90 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
Das erste Handbuch zu Ruby on Rails 2! Die zahlreichen und komplexen Möglichkeiten des Frameworks, das auch im Enterprice-Bereich häufig eingesetzt wird, werden ausführlich behandelt. Dennoch bleibt das Buch stets verständlich und praxisbezogen, da Rails anhand mehrerer »Realworld«-Beispiele erläutert wird.
Alle Beispielapplikationen sind dabei systematisch aufgebaut: von einer einfachen bis zu einer komplexen Anwendung inklusive TestDrivenDevelopment. Tipps und Tricks, eine umfassende Befehlsreferenz und eine Einführung in die Sprache Ruby lassen dann keine Wünsche mehr offen.

Hussein Morsy arbeitet als Berater, Entwickler und Trainer in Düsseldorf und leitet seit 1997 die Agentur visualsoft.de. Zu seinen Kunden zählen große Unternehmen wie Vodafone, BASF und die Lufthansa. Er ist offiziell zertifizierter Macromedia Dreamweaver- und MySQL-Entwickler.

1 ... Einführung ... 27


... 1.1 ... Wie entstand Rails? ... 27

... 1.2 ... Warum Ruby? ... 28

... 1.3 ... ModelViewController ... 30

... 1.4 ... Datenbankpersistenz ... 31

... 1.5 ... Konvention statt Konfiguration ... 31

... 1.6 ... Das DRY-Prinzip ... 32

... 1.7 ... Das neue Web 2.0 ... 32

... 1.8 ... Neues in Rails2.0.x ... 33

... 1.9 ... Update auf Rails 2.0.x ... 36



2 ... Installation ... 41


... 2.1 ... Allgemeines ... 41

... 2.2 ... Installation unter Mac OSX ... 42

... 2.3 ... Installation unter Windows ... 48

... 2.4 ... InstallationunterLinux ... 53

... 2.5 ... Editoren und Entwicklungsumgebungen ... 55



3 ... Erste Schritte ... 59


... 3.1 ... Eine Rails-Applikation erstellen ... 59

... 3.2 ... Der lokale Rails-Server ... 60

... 3.3 ... Grundgerüst mit Scaffolds erstellen ... 61

... 3.4 ... Die Applikation im Browser aufrufen ... 63

... 3.5 ... HTTP-Authentifizierung ... 64



4 ... Einführung in Ruby ... 67


... 4.1 ... Was ist Ruby? ... 67

... 4.2 ... Ruby-Code ausführen ... 68

... 4.3 ... Grundlagen ... 71

... 4.4 ... Zahlen ... 88

... 4.5 ... Zeichenketten ... 91

... 4.6 ... Symbole ... 110

... 4.7 ... Reguläre Ausdrücke ... 111

... 4.8 ... Arrays ... 116

... 4.9 ... Hashes ... 130

... 4.10 ... Datum und Zeit ... 139

... 4.11 ... Module ... 147



5 ... Eine einfache Bookmarkverwaltung ... 153


... 5.1 ... Rails-Projekt erstellen ... 154

... 5.2 ... Weitere Views anlegen ... 163

... 5.3 ... Layout ... 165

... 5.4 ... Model ... 171

... 5.5 ... CRUD–Create–Read–Update–Delete ... 180

... 5.6 ... Fehlerbehandlung in Formularen ... 192

... 5.7 ... Flash-Messages ... 197

... 5.8 ... Refaktorisierung mit Helper und Partials ... 200

... 5.9 ... Authentifizierung ... 206

... 5.10 ... Routing ... 216

... 5.11 ... RESTful Rails ... 223

... 5.12 ... Darstellungsformate in RESTfulRails ... 230

... 5.13 ... Ajax ... 232



6 ... Test-Driven Development ... 241


... 6.1 ... Was ist TDD? ... 241

... 6.2 ... Vorstellung des Projekts ... 243

... 6.3 ... Projekt erstellen und konfigurieren ... 245

... 6.4 ... Unit-Tests ... 246

... 6.5 ... Functional-Tests erstellen ... 269

... 6.6 ... Autotest ... 282

... 6.7 ... Referenz ... 283



7 ... Rails-Projekteerstellen ... 289


... 7.1 ... Generieren eines Rails-Projektes ... 289

... 7.2 ... Verzeichnisstruktur einer Rails-Applikation ... 292

... 7.3 ... Namenskonventionen ... 294

... 7.4 ... Datenbank-Konfiguration ... 296

... 7.5 ... Umgebungseinstellungen ... 299

... 7.6 ... Generatoren ... 304

... 7.7 ... Rails-Konsole ... 308

... 7.8 ... Lokaler Server ... 309

... 7.9 ... Logging ... 310

... 7.10 ... Debugging ... 311

... 7.11 ... Rake ... 314

... 7.12 ... EdgeRails ... 319

... 7.13 ... Ein Rails-Projekt in Subversion überführen ... 319



8 ... Templatesystem mit ActionView ... 325


... 8.1 ... ERB-Templates ... 326

... 8.2 ... Erstellung von Templates ... 328

... 8.3 ... Helper ... 329

... 8.4 ... Layouts ... 351

... 8.5 ... Formulare ... 353

... 8.6 ... Partials ... 389

... 8.7 ... Alternative Template-Systeme ... 396



9 ... Steuerzentrale mit ActionController ... 399


... 9.1 ... Grundlagen ... 399

... 9.2 ... Aufgaben des Controllers ... 401

... 9.3 ... Filter ... 414

... 9.4 ... Routing ... 417



10 ... Datenbankzugriff mit ActiveRecord ... 425


... 10.1 ... Einführung ... 425

... 10.2 ... Eine ActiveRecord-Model-Klasse generieren ... 435

... 10.3 ... Rake-Tasks zum Verwalten von Datenbanken ... 440

... 10.4 ... Getter-und Setter-Methoden ... 444

... 10.5 ... Erstellen, bearbeiten und löschen ... 446

... 10.6 ... Suchen ... 449

... 10.7 ... Datenbankschema und Migrations ... 459

... 10.8 ... Migration-Skripte ... 460

... 10.9 ... Migration-Befehle im Detail ... 467

... 10.10 ... Assoziationen ... 475

... 10.11 ... Validierung ... 503

... 10.12 ... Statistische Berechnungen ... 515

... 10.13 ... Callbacks ... 516

... 10.14 ... Vererbung ... 518



11 ... E-Mails verwalten mit ActionMailer ... 523


... 11.1 ... Beispielprojekt: Kontaktformular ... 523

... 11.2 ... HTML-E-Mails ... 535

... 11.3 ... E-Mails mit Anhängen ... 536

... 11.4 ... Konfiguration ... 536



12 ... Nützliche Helfer mit ActiveSupport ... 539


... 12.1 ... Zahlen ... 540

... 12.2 ... Zeichenketten ... 545

... 12.3 ... Arrays ... 546

... 12.4 ... Hashes ... 547

... 12.5 ... Datentypunabhängig ... 548



13 ... AjaxonRails ... 551


... 13.1 ... Grundlagen ... 551

... 13.2 ... JavaScript-Frameworks ... 552

... 13.3 ... Einbinden der JavaScript-Bibliotheken ... 553

... 13.4 ... RJS:Ruby-JavaScript ... 555

... 13.5 ... Debugging mit Firebug ... 561

... 13.6 ... RJS-Referenz ... 564



14 ... RESTful Rails und Webservices ... 569


... 14.1 ... Was sind Webservices? ... 569

... 14.2 ... REST ... 570

... 14.3 ... RESTful Rails ... 573

... 14.4 ... Einen Webservice anbieten ... 584

... 14.5 ... Zugriff auf einen Webservice mit ActiveResource ... 587



15 ... Rails mit Plug-ins erweitern ... 593


... 15.1 ... Plug-ins Grundlagen ... 593

... 15.2 ... Nützliche Plug-ins ... 597



16 ... Performancesteigerung ... 619


... 16.1 ... Einführung ... 619

... 16.2 ... Page-Caching ... 620

... 16.3 ... Action-Caching ... 631

... 16.4 ... Fragment-Caching ... 635

... 16.5 ... Caching von CSS-und Java Script-Dateien ... 640

... 16.6 ... Caching mit memcached ... 642

... 16.7 ... Zusammenfassung ... 646



17 ... Sicherheit ... 647


... 17.1 ... Warum Sicherheit wichtig ist ... 647

... 17.2 ... SQL Injection ... 647

... 17.3 ... Cross-Site-Scripting XSS ... 648

... 17.4 ... Cross-Site Request Forgery(CSRF/XSRF) ... 650

... 17.5 ... Sessions ... 652

... 17.6 ... Validierung ... 654

... 17.7 ... Reguläre Ausdrücke ... 655



18 ... Veröffentlichen einer Rails-Applikation auf einem Server ... 657


... 18.1 ... Wahl des Providers ... 658

... 18.2 ... Einrichten des Servers ... 659

... 18.3 ... Konfigurieren der Rails-Applikation auf dem Server ... 669

... 18.4 ... Deployment mit Capistrano ... 673



Index ... 689

In diesem Kapitel zeigen wir am Beispiel eines Verwaltungssystems für Flüge, wie man eine testgesteuerte Applikation entwickelt. 6 Test-Driven Development (S. 241-242) In diesem Kapitel zeigen wir Ihnen, wie man eine Applikation mit der testgesteuerten (Test-Driven Development) Technik entwickeln kann. Hierbei wird nicht erst nach der Programmierung der Code getestet, sondern umgekehrt. Diese Programmiertechnik wird von immer mehr Entwicklern eingesetzt. 6.1 Was ist TDD? Eine Rails-Applikation besteht aus mehreren Teilen, die miteinander interagieren. Die Models, Controller und Views sind gemeinsam durch ihre Interaktion für die Darstellung der Inhalte verantwortlich. Wenn an einer Stelle, zum Beispiel im Model, etwas geändert wird, kann das Konsequenzen an anderen Stellen haben. Wird zum Beispiel ein Datenbankfeld umbenannt, muss in letzter Konsequenz auch der View entsprechend angepasst werden. Das heißt, mit steigender Komplexität wird es immer schwieriger, die Ursachen für mögliche Fehler zu finden. Und genau an diesem Punkt setzt Test-Driven Development (TDD) an. Es wird eine Annahme getroffen und entsprechender Testcode programmiert, der dann überprüft, ob der Code der Applikation auch der Annahme entspricht. Wir legen also im Testcode fest, was wir von dem Teil der Applikation, den wir gerade testen, erwarten. Wenn zum Beispiel ein Preis ermittelt werden soll, erwarten wir unter bestimmten Bedingungen einen bestimmten Wert. Ob der ermittelte Wert dem erwarteten Wert entspricht, überprüfen wir mit dem Testcode. Das Interessante dabei ist, dass der Testcode nicht am Ende eines Projektes entwickelt wird, sondern bevor man eine Zeile Code der eigentlichen Applikation entwickelt hat. Das heißt, wir beginnen mit dem Testcode, der uns dann vorgibt, was wir für unsere Applikation zu programmieren haben. Praktisch heißt das, wir treffen eine Annahme, programmieren den entsprechenden Testcode und führen diesen aus. Schlägt er fehl, korrigieren und/oder erweitern wir unseren Code der Applikation, bis der Testcode funktioniert.

Erscheint lt. Verlag 28.3.2008
Reihe/Serie Galileo Computing
Sprache deutsch
Maße 240 x 168 mm
Gewicht 1345 g
Themenwelt Informatik Programmiersprachen / -werkzeuge Ruby
Mathematik / Informatik Informatik Web / Internet
Schlagworte AJAX • Framework • HC/Informatik, EDV/Internet • MVC • Rails • Rails Praxis • Ruby • Ruby On Rails • Web-Framework
ISBN-10 3-89842-779-X / 389842779X
ISBN-13 978-3-89842-779-1 / 9783898427791
Zustand Neuware
Haben Sie eine Frage zum Produkt?