Professionelle Webentwicklung mit Ruby on Rails 2



Ähnliche Dokumente
Professionelle Webentwicklung mit Ruby on Rails 2

Ruby on Rails 2. Das Praxisbuch für Entwickler. Professionelle Webentwicklung mit. Jens-Christian Fischer

Adobe Flash CS4. Herbert A. Mitschke. inklusive DVD-ROM. Von den Programmier-Grundlagen zur professionellen Webentwicklung

Digitale Naturfotografie

Migration von statischen HTML Seiten

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst

Microsoft Access 2010 Navigationsformular (Musterlösung)

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

SEO Strategie, Taktik und Technik

Rüdiger Zarnekow Lutz Kolbe. Green IT. Erkenntnisse und Best Practices aus Fallstudien

Praxiswissen TYPO3 CMS 7 LTS

Die TYPO3-Extension Publikationen

EVENTO-WEB. Handbuch für Dozierende. Version: 1.2 Datum: 20. Dezember 2010 Autoren: BA Schuladministration

5. Übung: PHP-Grundlagen

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Audiospektrum- Analyse mit Mikrocontrollern

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Energieeffizienz mit System

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Grundmann Rathner Abschlussprüfungen Bankwirtschaft, Rechnungswesen und Steuerung, Wirtschafts- und Sozialkunde

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Jochen Bartlau. List & Label. schnell + kompakt

Dokumentenverwaltung im Internet

Eine Anwendung mit InstantRails 1.7

4.1 Wie bediene ich das Webportal?

Einführungskurs MOODLE Themen:

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Willkommen zur Imperia Administratorschulung

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

ecwid ist eine E-Commerce Plattform, die Ihnen ermöglicht einen Onlineshop zu erstellen und ihn in Ihre Webseite einzubinden.

Motivierte Klienten trotz Zwangskontext

GITS Steckbriefe Tutorial

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Pfötchenhoffung e.v. Tier Manager

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Die Computerwerkstatt

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Lehrer: Einschreibemethoden

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

ASVZweb_08/ Schreibhilfe

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Einführung Design und Programmierung. Microsoft Dynamics NAV 2016

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Gambio GX2 FAQ. Inhaltsverzeichnis

Strategieentwicklung in Sozialinstitutionen

Workflows verwalten. Tipps & Tricks

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Schulung Marketing Engine Thema : Einrichtung der App

CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.

B12-TOUCH VERSION 3.5

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Ihr CMS für die eigene Facebook Page - 1

Erstellen eigener HTML Seiten auf ewon


Hochschule Darmstadt Fachbereich Informatik

Anleitung für die Hausverwaltung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Latein kann ich auch - Rom und die Römer

Inhaltsverzeichnis VII

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Schritt für Schritt. Anmeldung

Microsoft SharePoint 2013 Designer

Import und Export von Übergängern

Erstellen der Barcode-Etiketten:

sidoku sidoku EXPRESS Release Stand: erstellt von: EXEC Software Team GmbH Südstraße Ransbach-Baumbach

Microsoft Access 2013 Navigationsformular (Musterlösung)

ISBN Bestell-Nr

ShopwareAutoinvoice Installations- und Benutzeranleitung

ipad Air 2 und ipad mini 3

BILDER TEILEN MIT DROPBOX

Installationsanleitung Webhost Windows Compact

Installations Guide für YAJSW und DTLDAP

Mailverteiler. HowTo. Erstellen von Mailverteilern im mytum Portal. Version 1.0. preliminary

HANDBUCH MOZILLA THUNDERBIRD So richten Sie Ihren kostenlosen Client ein.

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Technologiepark 20, D Paderborn, Tel. (+49) , Fax. (+49) Servicemodul aus Faxverteiler.com

Thomas Meuser Hrsg. Promo-Viren. Zur Behandlung promotionaler Infekte und chronischer Doktoritis 3., kurierte Auflage

November Fachdidaktik WG - bei Peter Sägesser. 2 - Wählen Sie Datei Speichern und

C A L D E R A G R A P H I C S. Wie geht das? Einrichten automatischer Druckprozesse

Medizinische Grundlagen der Heilpädagogik

SCHNELLEINSTIEG FÜR HOSTED EXCHANGE BASIC / PREMIUM

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind:

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

netdocx Virtuelles Prüfbuch

Schuljahreswechsel im Schul-Webportal

Affiliate-Marketing. Kapitel 6. Copyright by Worldsoft AG, 2014, Pfäffikon SZ, Switzerland. Version: Seite 1

Stundenerfassung Version 1.8

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

ejgp Webseite Kurzeinführung

Interaktive Whiteboards im Unterricht

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

In dem unterem Feld können Sie Ihre eintragen, wenn sie im System hinterlegt wurde. Dann wird Ihnen Ihr Passwort noch einmal zugeschickt.

Inventarverwaltung mit Access 2007/10

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Installation OMNIKEY 3121 USB

Anleitung für den Elektronischen Lesesaal der Martin-Opitz Bibliothek

Transkript:

Professionelle Webentwicklung mit Ruby on Rails 2 Das Praxisbuch für Entwickler von Jens-Christian Fischer 2008;unveränderter Nachdruck des Titels 978-3-8266-1683-9 Professionelle Webentwicklung mit Ruby on Rails 2 Fischer schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv 2009 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 8266 9025 9

Aus dem Inhalt: Teil I: Rails praktisch anwenden Praxiseinstieg: eine erste einfache Anwendung Einführung ins Testen ActiveRecord: mit Modellen arbeiten Relationen zwischen Objekten herstellen Navigation und Layout Teil II: Rails professionell einsetzen Tools für die Arbeitsumgebung: vom Editor bis zur Versionskontrolle Behaviour Driven Development und RSpec HAML und SASS REST User Stories Erweiterungen für Rails: Plug-ins, Gems, Bibliotheken Login und Authentisierung Die Anwendung um Kommentare erweitern Suchfunktionen integrieren AJAX mit jquery Produktionsumgebung einrichten Automatisches Deployment mit Capistrano Teil III: Ruby Ruby-Grundlagen Metaprogrammierung in Ruby Alternatives Ruby: JRuby Teil IV: Anhänge Installation von Ruby und Rails unter Mac 10.4/10.5, Unix/Linux, Windows Weiterführende Ressourcen Weitere Details zum Buch, eine Rails-Referenz sowie den Sourcecode der Beispielanwendung finden Sie unter: www.rails-praxis.de. Ruby on Rails hat sich in Windeseile zu einem der beliebtesten Frameworks für die Erstellung von Webanwendungen entwickelt. Mit kaum einem anderen Framework lassen sich so effektiv und mit so wenig Code funktionsreiche Webseiten erstellen und mit keinem anderen Framework macht es so viel Spaß versprochen. Jens-Christian Fischer richtet sich an ambitionierte Einsteiger und Programmierer und ermöglicht ihnen einen praxisbezogenen Einstieg in die Entwicklung von Webanwendungen mit Ruby on Rails. Im Buch wird eine vollständige Webanwendung mit zahlreichen Funktionen erstellt, anhand derer die im Buch vorgestellten Konzepte sowie fortgeschrittenen Techniken vermittelt werden. Im ersten Teil werden zunächst die Grundsteine für die Webanwendung gelegt mit den ersten einfachen Funktionen, damit Sie direkt in die Praxis einsteigen und schnell Ergebnisse sehen können. Dabei wird bereits großer Wert auf das Testen gelegt. In Teil II geht es ans Eingemachte: Fischer erläutert hier insbesondere, wie Intra- und Internetanwendungen professionell entwickelt werden, und zeigt Ihnen hierfür viele relevante Techniken, z.b. die testgetriebene Entwicklung, Behaviour Driven Development und User Stories mit RSpec. Er verwendet neben den Standardfunktionen, die Rails mitbringt, wie REST für das Modellieren von Ressourcen, auch Alternativen wie HAML und SASS für das Erzeugen von HTML oder jquery für JavaScript- und AJAX-Funktionalität. Gleichzeitig wird die Anwendung um fortgeschrittene Features erweitert: unter anderem die Einbindung einer komfortablen Suchfunktion mit Sphinx. Zu guter Letzt wird die Anwendung für den produktiven Einsatz vorbereitet und das automatische Deployment mit Capistrano erklärt. Teil III dient dazu, Ihnen nicht nur die Grundlagen von Ruby näherzubringen, sondern auch weiterführende Themen wie die Metaprogrammierung in Ruby sowie JRuby. Der Anhang behandelt ausführlich die Installation von Ruby und Rails unter allen verfügbaren Systemen. Wenn Sie wissen wollen, wie Sie aus Rails mehr machen und welche Techniken Sie für professionelle Anwendungen einsetzen können, dann werden Sie in diesem Buch fündig. Jens-Christian Fischer lässt Sie an seinem langjährigen Erfahrungsschatz teilhaben. Über den Autor: Jens-Christian Fischer entwickelt seit 20 Jahren professionell Software. Mit Ruby und dem Framework Rails entwickelt er seit über 3 Jahren von der Netzwerküberwachung bis zum Katalog mit Webshop. Er hält regelmäßig Vorträge und bloggt auf http://blog.invisible.ch. Außerdem zum Thema: ISBN 978-3-8266-1775-1 ISBN 978-3-8266-1703-4 ISBN 978-3-8266-5885-3 Regalsystematik: Programmierung ISBN ISBN 978-3-8266-9025-9 Probekapitel und Infos erhalten Sie unter: info@it-fachportal.de www.it-fachportal.de (D) 34,95 Professionelle Webentwicklung mit Ruby on Rails 2 Jens-Christian Fischer 9025 Jens-Christian Fischer Professionelle Webentwicklung mit Ruby on Rails 2 Das Praxisbuch für Entwickler Test und Behaviour Driven Development mit RSpec und User Stories REST, AJAX mit jquery, HAML und SASS Suchfunktionen integrieren, Deployment mit Capistrano 9025_Ruby_ND_korr.indd 1 09.09.2009 11:18:28 31mm

00 RubyOnRails.book Seite 3 Dienstag, 22. September 2009 10:43 10 Jens-Christian Fischer Professionelle Webentwicklung mit Ruby on Rails 2 Das Praxisbuch für Entwickler

00 RubyOnRails.book Seite 4 Dienstag, 22. September 2009 10:43 10 Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar. Bei der Herstellung des Werkes haben wir uns zukunftsbewusst für umweltverträgliche und wiederverwertbare Materialien entschieden. Der Inhalt ist auf elementar chlorfreiem Papier gedruckt. ISBN 978-3-8266-9025-9 Unveränderter Nachdruck der ISBN 978-3-8266-1683-3 1. Auflage 2008 E-Mail: kundenbetreuung@hjr-verlag.de Telefon: +49 89/2183-7928 Telefax: +49 89/2183-7620 2009 mitp, eine Marke der Verlagsgruppe Hüthig Jehle Rehm GmbH Heidelberg, München, Landsberg, Frechen, Hamburg IT -fachportal.de Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Printed in Germany Lektorat: Sabine Schulz Satz: III-satz, Husby, www.drei-satz.de

00 RubyOnRails.book Seite 5 Dienstag, 22. September 2009 10:43 10 Über dieses Buch........................................... 15 Ein hilfreiches Buch?....................................... 15 Voraussetzungen........................................... 16 Aufbau des Buches......................................... 16 Ist dieses Buch für Sie?...................................... 20 Was ist nicht enthalten?..................................... 21 Administratives............................................ 21 Danksagung............................................... 23 Teil I Rails praktisch anwenden.................................. 25 1 Eine Anwendung entsteht................................... 27 1.1 Anforderungen............................................ 27 1.2 Voraussetzungen........................................... 28 1.3 Achtung, fertig, Rails!....................................... 28 1.4 Rails das erste mal starten................................... 30 1.5 Endlich: Die erste Seite...................................... 34 1.6 URLs verstehen............................................ 35 1.7 Das Model einer Seite....................................... 40 1.7.1 Migration.......................................... 41 1.7.2 Datenpflege per Hand................................ 45 1.8 Darstellung einzelner Seiten................................. 52 1.8.1 Einzelne Seite....................................... 52 1.8.2 Fehlerhaft!.......................................... 55 1.8.3 Liste aller Seiten anzeigen............................. 57 1.9 Ein einfaches Layout verwenden.............................. 59 1.10 Was Sie gelernt haben....................................... 60 2 Einführung ins Testen...................................... 63 2.1 Automatische Tests......................................... 63 2.1.1 Muss es sein?....................................... 65 2.1.2 Einen Test schreiben................................. 65 5

00 RubyOnRails.book Seite 6 Dienstag, 22. September 2009 10:43 10 2.2 Testdaten mit Fixtures generieren........................... 69 2.3 Tests für das Bearbeiten von Seiten........................... 71 2.3.1 Den Controller testen................................ 74 2.3.2 Die View testen.................................... 78 2.4 Was Sie gelernt haben...................................... 81 3 Weitere einfache Funktionen der Anwendung.................. 83 3.1 Formulare gestalten........................................ 83 3.1.1 Hilfsfunktionen zur Formulargestaltung................ 84 3.1.2 Felder............................................. 87 3.2 Seiten aktualisieren........................................ 88 3.3 Neue Seiten anlegen....................................... 92 3.4 Die View in wiederverwendbare Blöcke aufteilen................ 96 3.5 Seiten löschen............................................ 99 3.6 Benutzerführung.......................................... 102 3.6.1 Die Funktion link_to................................ 103 3.6.2 Die Funktion button_to.............................. 103 3.6.3 Verlinkungen...................................... 106 3.6.4 Die Funktionen assert_select und url_for............... 107 3.7 Scaffolding?.............................................. 109 3.8 Genügend Tests?.......................................... 111 3.9 Lösungen................................................ 112 3.9.1 Aufgabe 1.......................................... 112 3.9.2 Aufgabe 2......................................... 113 3.10 Was Sie gelernt haben...................................... 115 4 ActiveRecord: Mit Modellen arbeiten.......................... 117 4.1 ORM: Von Objekt zu Datenbank und zurück................. 117 4.2 Validierungen............................................. 118 4.3 Fehlermeldungen anzeigen................................. 122 4.4 ActiveRecord-Funktionen................................... 128 4.4.1 Zugriffe auf Spalten................................. 128 4.4.2 Mit mehreren Attributen arbeiten...................... 135 4.4.3 Callbacks in Models................................. 138 4.5 Was Sie gelernt haben...................................... 144 5 Relationen zwischen Objekten herstellen...................... 145 5.1 Kategorien in eigene Tabelle verschieben...................... 145 5.1.1 Datenmigration vornehmen.......................... 146 5.1.2 Tests anpassen..................................... 150 6

00 RubyOnRails.book Seite 7 Dienstag, 22. September 2009 10:43 10 5.2 Kategorien mittels Dropdown auswählen....................... 153 5.3 Alle Relationen im Überblick................................. 156 5.3.1 Eins zu eins......................................... 157 5.3.2 Eins zu vielen....................................... 158 5.3.3 Viele zu vielen....................................... 161 5.3.4 Viele zu viele durch ein anderes Model.................. 164 5.4 Optionen für Assoziationen.................................. 166 5.4.1 SQL-Modifikatoren................................... 170 5.5 Was Sie gelernt haben...................................... 172 6 Navigation und Layout...................................... 173 6.1 Navigation................................................ 174 6.1.1 Titelseite........................................... 176 6.1.2 Liste aller Kategorien................................. 178 6.1.3 Refactoring des Controllers........................... 180 6.1.4 Seiten nach Kategorien suchen......................... 181 6.2 Layout.................................................... 184 6.2.1 Seitenaufbau........................................ 185 6.2.2 Seitenleiste......................................... 188 6.2.3 Titel............................................... 190 6.2.4 Liste............................................... 192 6.2.5 Navigation.......................................... 193 6.3 Was Sie gelernt haben....................................... 196 Teil II Rails professionell einsetzen................................ 197 7 Die Arbeitsumgebung einrichten............................. 199 7.1 Der Editor................................................. 200 7.2 Versionskontrolle.......................................... 202 7.2.1 Wieso Versionskontrolle?............................. 203 7.3 Firefox / Firebug........................................... 203 7.4 Refactoring................................................ 204 7.5 Kontinuierliche Integration.................................. 205 7.6 Der Entwicklungs-Workflow................................. 206 7.6.1 Erstellen eines Repositories............................ 208 7.6.2 Import............................................. 209 7.6.3 Weniger verwalten................................... 211 7.6.4 Arbeit sichern....................................... 214 7

00 RubyOnRails.book Seite 8 Dienstag, 22. September 2009 10:43 10 7.7 Workflow mit Git.......................................... 214 7.7.1 Git-Branching und -Merging.......................... 218 7.8 Was Sie gelernt haben...................................... 221 8 Behaviour Driven Development............................. 223 8.1 RSpec installieren......................................... 223 8.1.1 Dokumentation..................................... 224 8.2 Spezifizieren, nicht testen................................... 225 8.2.1 Erwartungen an die Software in Spezifikationen abbilden.......................................... 227 8.2.2 RSpec on Rails..................................... 233 8.2.3 Mock-Objekte...................................... 236 8.2.4 Erwartungen an Methodenaufrufe formulieren.......... 240 8.2.5 ActiveRecord-Attrappen bauen........................ 243 8.3 Was Sie gelernt haben...................................... 245 9 HAML und SASS.......................................... 247 9.1 Alternativen zu Embedded Ruby (ERB)....................... 247 9.1.1 Markaby........................................... 247 9.1.2 Liquid............................................. 248 9.1.3 HAML............................................ 249 9.2 Einführung in HAML...................................... 250 9.3 Installation............................................... 253 9.4 HAML-Basics............................................. 254 9.4.1 HTML-Tags........................................ 254 9.4.2 Tag-Attribute....................................... 255 9.4.3 Implizite DIVs..................................... 255 9.4.4 Objekt-Klasse und ID................................ 256 9.4.5 Direkt geschlossene Tags............................. 256 9.4.6 Ruby einbetten..................................... 257 9.4.7 Listen............................................. 257 9.4.8 Blöcke ohne Leerzeichen einbetten..................... 257 9.4.9 Doctype-Deklarationen............................... 258 9.4.10 Kommentare....................................... 259 9.4.11 Escaping.......................................... 260 9.4.12 Mehrere Zeilen..................................... 261 9.4.13 Textfilter.......................................... 261 9.5 HAML in der Praxis........................................ 262 9.6 SASS und CSS............................................ 266 8

00 RubyOnRails.book Seite 9 Dienstag, 22. September 2009 10:43 10 9.6.1 Grundlagen......................................... 266 9.6.2 Konstanten und Berechnungen........................ 268 9.6.3 Importe............................................ 270 9.6.4 Kommentare........................................ 271 9.6.5 Konfiguration....................................... 271 9.7 HAML-Generator.......................................... 272 9.8 Fazit..................................................... 275 9.9 Was Sie gelernt haben....................................... 275 10 REST..................................................... 277 10.1 Mit der Welt reden......................................... 277 10.2 Grundlagen............................................... 279 10.2.1 URL und Verb...................................... 279 10.2.2 Repräsentation...................................... 280 10.2.3 Ressourcen......................................... 281 10.3 Routing................................................... 283 10.4 REST-Controller........................................... 287 10.4.1 make_resourceful.................................... 290 10.4.2 resource_this....................................... 294 10.4.3 Wie DRY?.......................................... 297 10.5 Komplexere Fälle........................................... 297 10.5.1 Verschachtelte Ressourcen............................ 297 10.5.2 Mehrfach verschachtelte Ressourcen.................... 301 10.5.3 Singleton-Ressourcen................................ 303 10.6 Was Sie gelernt haben....................................... 306 11 RSpec, REST und User Stories in der Praxis.................... 307 11.1 Vorbereitungen............................................ 307 11.2 User Stories............................................... 307 11.2.1 Anatomie einer User Story............................ 308 11.3 Die User Story implementieren............................... 311 11.4 BDD-Controller............................................ 313 11.4.1 Unterschied zwischen Mock und Stub.................. 317 11.4.2 Model durch Mock ersetzen........................... 318 11.5 BDD-View................................................ 321 11.6 Nutzen von Stories und Spezifikationen........................ 325 11.7 Plain Text Stories........................................... 326 11.7.1 Steps.............................................. 328 11.7.2 Webrat............................................. 330 9

00 RubyOnRails.book Seite 10 Dienstag, 22. September 2009 10:43 10 11.7.3 Implementierung................................... 334 11.8 Specs und Stories.......................................... 338 11.9 Was Sie gelernt haben...................................... 340 12 Erweiterungen............................................ 343 12.1 Rails erweitern............................................ 343 12.1.1 Libraries........................................... 343 12.1.2 Plug-ins........................................... 344 12.2 Login und Authentisierung.................................. 346 12.2.1 Wie weiß Rails, wer eingeloggt ist?..................... 346 12.2.2 Das Plug-in restful_authentication.................... 348 12.2.3 Benutzer registrieren................................ 349 12.2.4 Aktionen schützen.................................. 357 12.2.5 Aufräumen........................................ 359 12.3 Aufgaben im Hintergrund.................................. 364 12.4 Konfiguration............................................. 366 12.5 Display mit Maruku........................................ 369 12.6 Was Sie gelernt haben...................................... 374 13 Die Anwendung um Kommentare erweitern................... 375 13.1 Kommentare abgeben...................................... 375 13.1.1 Die User Story»Kommentar abgeben«................. 376 13.1.2 Das View-Spec für»seite ansehen«.................... 377 13.1.3 Hilfsfunktionen zum Generieren von Mock-Objekten..... 381 13.1.4 View ergänzen..................................... 382 13.1.5 Model für Kommentare mit STI...................... 382 13.1.6 Verknüpfung zwischen Page und Comment............. 385 13.1.7 Kommentare zu Kommentaren erstellen................ 386 13.1.8 Comments-Controller............................... 388 13.1.9 Views für Kommentare.............................. 390 13.2 Kommentare sehen........................................ 395 13.3 Kommentare in Baumstruktur............................... 397 13.3.1 Subkommentare erstellen............................ 398 13.3.2 Baumstruktur anzeigen.............................. 401 13.4 Admin-Interface für Kommentare............................ 402 13.4.1 Kommentare auflisten, zeigen und löschen.............. 402 13.4.2 Blättern mit will_paginate............................ 404 13.4.3 Mehrere Kommentare gleichzeitig löschen.............. 407 13.5 Was Sie gelernt haben...................................... 410 10

00 RubyOnRails.book Seite 11 Dienstag, 22. September 2009 10:43 10 14 Suchfunktionen............................................ 411 14.1 Mögliche Technologien...................................... 411 14.1.1 SQL............................................... 411 14.1.2 Ferret.............................................. 412 14.1.3 SOLR.............................................. 412 14.1.4 Ultrasphinx......................................... 413 14.2 Mit Ultrasphinx arbeiten..................................... 413 14.2.1 Installation......................................... 413 14.2.2 Rails-Plug-ins....................................... 413 14.2.3 Indexieren.......................................... 414 14.2.4 Suchen............................................ 416 14.3 Such-Controller............................................ 416 14.3.1 Unterstützung von will_paginate....................... 423 14.3.2 Kommentare finden oder eben nicht.................... 425 14.4 Pages und Comments trennen................................ 426 14.5 Indexoptionen............................................. 428 14.5.1 Felder............................................. 429 14.5.2 Assoziationen....................................... 429 14.6 Suchoptionen.............................................. 430 14.7 Suchmaske................................................ 431 14.8 Ultrasphinx produktiv einsetzen.............................. 433 14.8.1 Indexverwaltung..................................... 433 14.8.2 Delta-Indizes........................................ 434 14.9 Was Sie gelernt haben....................................... 436 15 JavaScript & AJAX.......................................... 437 15.1 Wozu AJAX und JavaScript?.................................. 438 15.2 Unterschiede zwischen Prototype und jquery................... 438 15.3 jquery verwenden.......................................... 440 15.3.1 Installation......................................... 440 15.3.2 Philosophie......................................... 443 15.4 Beispiele für das User Interface.............................. 443 15.4.1 Einblenden von Login-Feldern......................... 444 15.4.2 Feld mit Vorgabewerten füllen......................... 448 15.4.3 generieren.......................... 450 15.5 AJAX-Beispiele............................................. 453 15.5.1 Published Status umschalten.......................... 453 15.5.2 Kommentare eingeben, ohne die Seite zu verlassen........ 458 11

00 RubyOnRails.book Seite 12 Dienstag, 22. September 2009 10:43 10 15.5.3 Periodisches Sichern im Hintergrund.................. 466 15.6 Was Sie gelernt haben...................................... 469 16 Die Produktionsumgebung.................................. 471 16.1 Code vorbereiten.......................................... 471 16.1.1 Gems definieren.................................... 472 16.1.2 Rails einfrieren..................................... 473 16.1.3 Gems einfrieren.................................... 474 16.2 Ladezeiten reduzieren...................................... 475 16.2.1 Gzip-Komprimierung................................ 477 16.2.2 Zusammenfassen von Dateien........................ 479 16.2.3 Mehr (virtuelle) Server............................... 480 16.3 Server aufsetzen........................................... 481 16.3.1 Webserver......................................... 482 16.3.2 Mongrel-Cluster.................................... 487 16.3.3 Datenbank......................................... 487 16.4 Was Sie gelernt haben...................................... 488 17 Automatisches Deployment mit Capistrano.................... 489 17.1 Wieso Capistrano?......................................... 489 17.2 Aufgaben von Capistrano................................... 490 17.3 Erste Schritte............................................. 490 17.3.1 deploy.rb pflegen................................... 491 17.3.2 Voraussetzungen prüfen............................. 492 17.3.3 Erstinstallation..................................... 495 17.3.4 Weiteres Deployment/Rollback........................ 497 17.3.5 Applikationsserver stoppen und starten................ 500 17.3.6 Deployment-Strategien............................... 502 17.3.7 Aufräumen........................................ 503 17.3.8 Dateien auf den Server kopieren....................... 503 17.3.9 Längere Wartungsarbeiten............................ 504 17.4 Capistrano erweitern....................................... 505 17.4.1 Neuen Task definieren............................... 505 17.4.2 before- und after-hooks verwenden.................... 506 17.5 Multistaging.............................................. 508 17.5.1 Hintergrund....................................... 508 17.5.2 Multistaging mit Capistrano.......................... 509 17.6 Capistrano-Referenz....................................... 511 12

00 RubyOnRails.book Seite 13 Dienstag, 22. September 2009 10:43 10 17.6.1 Befehle............................................ 512 17.6.2 Variablen........................................... 514 17.7 Was Sie gelernt haben....................................... 516 Teil III Ruby.................................................... 517 18 Ruby-Grundlagen Schöner Code............................ 519 18.1 Datentypen und Strukturen.................................. 519 18.1.1 Zahlen und Strings.................................. 519 18.1.2 String-Interpolation.................................. 520 18.1.3 Andere Datentypen.................................. 521 18.1.4 Wahr und Falsch.................................... 524 18.1.5 Array und Hash..................................... 525 18.2 Vererbung................................................ 526 18.3 Kontrollfluss............................................... 527 18.4 Schleifen und Iteratoren..................................... 528 18.4.1 each............................................... 530 18.4.2 inject.............................................. 531 18.4.3 select / reject........................................ 531 18.4.4 collect / map........................................ 532 18.4.5 any?............................................... 532 18.4.6 find............................................... 532 18.5 Blöcke.................................................... 532 18.5.1 Symbole zu Blöcken.................................. 534 18.6 Was Sie gelernt haben....................................... 536 19 Metaprogrammierung in Ruby............................... 537 19.1 Was ist Metaprogrammierung?............................... 537 19.2 Alles ist ein Objekt......................................... 538 19.3 Klassen sind offen.......................................... 540 19.4 Dynamische Typen......................................... 544 19.4.1 Duck Typing........................................ 545 19.5 Die Frage nach dem Selbst: self............................... 548 19.5.1 Neue Methoden für Objekte........................... 550 19.5.2 self in Klassen....................................... 552 19.5.3 self in Modulen...................................... 555 19.5.4 Der tiefere Sinn von self.............................. 556 13

00 RubyOnRails.book Seite 14 Dienstag, 22. September 2009 10:43 10 19.6 Ruby ist interpretiert....................................... 558 19.6.1 Methoden erzeugen................................. 560 19.7 Evaluation................................................ 564 19.7.1 instance_eval....................................... 566 19.7.2 class_eval.......................................... 566 19.8 Was Sie gelernt haben...................................... 568 20 Alternatives Ruby: JRuby.................................... 569 20.1 Installation............................................... 570 20.1.1 JRuby............................................. 570 20.1.2 Rails und Mongrel installieren........................ 572 20.1.3 JDBC-Adapter und ActiveRecord...................... 572 20.2 Bestehende Rails-Anwendung unter JRuby..................... 573 20.3 Neue Rails-Anwendung erstellen............................. 574 20.4 Rails-Anwendung unter Tomcat.............................. 575 20.5 Glassfish V2.............................................. 577 20.6 Glassfish V3.............................................. 579 20.7 Die Zukunft?............................................. 580 20.8 Was Sie gelernt haben...................................... 580 Teil IV Anhänge................................................ 581 A Installation von Ruby & Rails................................ 581 A.1 Mac..................................................... 581 A.1.1 Mac OS X 10.4 (Tiger)............................... 581 A.1.2 Mac OS X 10.5 (Leopard)............................. 594 A.2 Unix / Linux.............................................. 596 A.3 Windows................................................. 599 A.3.1 InstantRails........................................ 599 A.3.2 Schritt für Schritt................................... 600 A Ressourcen............................................... 609 A.1 Online-Ressourcen........................................ 609 A.2 Real-Life-Ressourcen....................................... 609 A.3 Bibliographie............................................. 610 Stichwortverzeichnis....................................... 613 14