Ruby on Rails 3.1 - Installation, Programmierung, Praxisbeispiele. Inkl. Einführung in Ruby und MVC, Testen mit Cucumber, Deployment auf Heroku

Ruby on Rails 3.1 - Installation, Programmierung, Praxisbeispiele. Inkl. Einführung in Ruby und MVC, Testen mit Cucumber, Deployment auf Heroku

von: Hussein Morsy, Tanja Otto

Galileo Press, 2011

ISBN: 9783836214902

Sprache: Deutsch

611 Seiten, Download: 6209 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Ruby on Rails 3.1 - Installation, Programmierung, Praxisbeispiele. Inkl. Einführung in Ruby und MVC, Testen mit Cucumber, Deployment auf Heroku



  Auf einen Blick 4  
  Inhalt 6  
  Einleitung 18  
  1 Einführung 22  
     1.1 Wie entstand Rails? 22  
     1.2 Warum Ruby? 23  
     1.3 Model View Controller 24  
     1.4 Persistenz 25  
     1.5 Konvention statt Konfiguration 26  
     1.6 Das DRY-Prinzip 26  
     1.7 Neues in Rails 3.0 27  
     1.8 Neues in Rails 3.1 29  
     1.9 Top-Ten-Websites zu Ruby on Rails 31  
  2 Installation 34  
     2.1 Allgemeines 34  
     2.2 Installation unter MacOS X 35  
        2.2.1 Compiler installieren 36  
        2.2.2 Paketmanager Homebrew 36  
        2.2.3 Datenbanken installieren 38  
        2.2.4 Ruby installieren mit »rbenv« 38  
        2.2.5 Rails installieren 41  
     2.3 Installation unter Windows 41  
     2.4 Installation unter Linux 42  
        2.4.1 Basisinstallation mit »apt-get« 42  
        2.4.2 Datenbanken installieren 43  
        2.4.3 Installation von »rbenv« 43  
     2.5 Editoren und Entwicklungsumgebungen 44  
        2.5.1 TextMate 44  
        2.5.2 Sublime Text 44  
        2.5.3 Vim 45  
        2.5.4 Emacs 45  
        2.5.5 IntelliJ IDEA und RubyMine 45  
        2.5.6 Aptana 46  
        2.5.7 Visual Studio 46  
  3 Unsere erste Rails-Applikation 48  
     3.1 Eine Rails-Applikation erstellen 48  
     3.2 Der lokale Rails-Server 49  
     3.3 Grundgerüst mit Scaffolds erstellen 51  
     3.4 Die Applikation im Browser aufrufen 52  
     3.5 Startseite festlegen 55  
     3.6 HTTP-Authentifizierung 55  
  4 Einführung in Ruby 58  
     4.1 Was ist Ruby? 58  
        4.1.1 Geschichte 58  
        4.1.2 Eigenschaften 59  
        4.1.3 Compiler oder Interpreter? 60  
        4.1.4 Ruby-Versionen 60  
     4.2 Ruby-Code ausführen 61  
        4.2.1 Quelltext 61  
        4.2.2 Interaktive Ruby Shell – »irb« 61  
        4.2.3 Im Webbrowser: Try Ruby 63  
     4.3 Grundlagen 64  
        4.3.1 Syntax 64  
        4.3.2 Variablen 65  
        4.3.3 Objekte und Datentypen 66  
        4.3.4 Eine Frage des Stils 71  
     4.4 Kontrollstrukturen 72  
        4.4.1 Verzweigungen 72  
        4.4.2 Mehrfachverzweigungen 74  
        4.4.3 Rubys eigene Logik: true und false 75  
        4.4.4 Schleifen 76  
        4.4.5 Iteratoren 77  
     4.5 Klassen 78  
        4.5.1 Klassen definieren 78  
        4.5.2 Automatische Accessoren 80  
        4.5.3 Initialisieren von Objekten 80  
        4.5.4 Zugriff auf Methoden 81  
        4.5.5 Parameter 82  
        4.5.6 Operatoren sind Methoden 84  
        4.5.7 Konstanten in Klassen 85  
        4.5.8 Klassenmethoden 86  
        4.5.9 Sichtbarkeit 87  
        4.5.10 Vererbung 88  
     4.6 Module 90  
        4.6.1 Namensräume 90  
        4.6.2 Mixins 91  
  5 Rails Schritt für Schritt entdecken 94  
     5.1 Rails-Projekt erstellen 95  
        5.1.1 Erstellung des Bookmarks-Controllers 96  
        5.1.2 View erstellen 100  
     5.2 Weitere Views anlegen 101  
     5.3 Layout 103  
     5.4 Model 108  
        5.4.1 Migration 110  
        5.4.2 ActiveRecord 112  
        5.4.3 Datenbankzugriff in der Konsole testen 112  
     5.5 CRUD (Create, Read, Update, Delete) 117  
     5.6 Fehlerbehandlung in Formularen 133  
     5.7 Flash-Messages 136  
     5.8 Refaktorisierung mit Helper und Partials 139  
        5.8.1 Helper 139  
        5.8.2 Partials 142  
     5.9 Authentifizierung 144  
     5.10 Jeder User hat seine eigenen Bookmarks 154  
     5.11 Mehrsprachigkeit mit I18n 159  
  6 Testen mit Cucumber 170  
     6.1 Test Driven Development 170  
        6.1.1 Was ist Cucumber? 172  
     6.2 Eine Beispielapplikation 172  
        6.2.1 Generierung der Cucumber-Dateien 173  
        6.2.2 Feature anlegen 173  
        6.2.3 Erweiterungen 190  
  Rails-Projekte erstellen und konfigurieren 192  
     7.1 Generieren eines Rails-Projektes 192  
        7.1.1 Verzeichnisstruktur einer Rails-Applikation 193  
        7.1.2 Datenbankoptionen 196  
        7.1.3 JavaScript-Framework-Optionen 198  
        7.1.4 Skip-Optionen 199  
        7.1.5 Sonstige Optionen 200  
        7.1.6 EdgeRails 201  
        7.1.7 Rails-Projekte mit einer Vorlage generieren 201  
     7.2 RubyGems managen mit Bundler 203  
        7.2.1 RubyGems installieren 203  
        7.2.2 Gemfile 204  
        7.2.3 Bundler 206  
     7.3 Konfiguration von Rails-Applikationen 208  
        7.3.1 »application.rb« 208  
        7.3.2 Initializers 209  
        7.3.3 Umgebungseinstellungen 211  
        7.3.4 Datenbankkonfiguration 213  
     7.4 Rails-Applikationen ausführen 216  
        7.4.1 Lokaler Server 216  
        7.4.2 Rails-Konsole 217  
        7.4.3 Logging 218  
        7.4.4 Debugging 219  
     7.5 Rake-Tasks 221  
        7.5.1 Rake-Tasks ausführen 222  
        7.5.2 Rake-Tasks im Überblick 222  
        7.5.3 Eigene Rake-Tasks erstellen 226  
     7.6 Versionsverwaltung 228  
        7.6.1 Ein Rails-Projekt mit Git verwalten 229  
        7.6.2 Ignorieren von Dateien und Verzeichnissen 230  
        7.6.3 Git-Befehle 230  
        7.6.4 GitHub 231  
     7.7 Generatoren 232  
        7.7.1 Verwendung 232  
        7.7.2 Übersicht aller Generatoren 233  
        7.7.3 Rückgängig machen 238  
        7.7.4 Generatoren konfigurieren 238  
  8 Datenbankzugriff mit ActiveRecord 240  
     8.1 Einführung 240  
        8.1.1 Vor- und Nachteile 242  
        8.1.2 Unterstützte Datenbanksysteme 243  
        8.1.3 Erstellen und Löschen von Datenbanken 244  
        8.1.4 Ein erstes Beispiel 245  
        8.1.5 Tabelle erstellen 246  
     8.2 Generatoren 250  
        8.2.1 Übersicht 251  
        8.2.2 Model-Generator-Beispiel 252  
     8.3 Datenbankschema und Migrationen 254  
        8.3.1 Migration-Skripte 256  
        8.3.2 Namenskonvention 259  
        8.3.3 Änderungen ausführen 260  
        8.3.4 Änderungen rückgängig machen 260  
        8.3.5 Schnappschuss eines Datenbankschemas 261  
        8.3.6 Datentypen in Migrationen 263  
        8.3.7 Tabellenfelder verwalten 263  
        8.3.8 Tabellen verwalten 265  
        8.3.9 Indizes verwalten 266  
        8.3.10 SQL-Befehle direkt verwenden 267  
     8.4 Getter- und Setter-Methoden 267  
        8.4.1 Überschreiben der Getter- und Setter-Methoden 269  
        8.4.2 Eigene Methoden 269  
     8.5 Erstellen, bearbeiten und löschen 270  
        8.5.1 Neues ActiveRecord-Objekt erstellen 270  
        8.5.2 Objekt erstellen und direkt speichern 270  
        8.5.3 Aktualisieren von Objekten 272  
        8.5.4 Löschen von Objekten 272  
     8.6 Validierung 273  
        8.6.1 »acceptance« 275  
        8.6.2 »validates_associated« 275  
        8.6.3 »confirmation« 276  
        8.6.4 »exclusion« 276  
        8.6.5 »inclusion« 277  
        8.6.6 »format« 277  
        8.6.7 »length« 277  
        8.6.8 »numericality« 278  
        8.6.9 »presence« 279  
        8.6.10 »uniqueness« 279  
        8.6.11 »validates_each« 280  
        8.6.12 Validierungsoptionen 280  
        8.6.13 Selbstdefinierte Validierungen 281  
     8.7 Suchen 281  
        8.7.1 Suche nach IDs 282  
        8.7.2 Suchmethoden im Überblick 283  
        8.7.3 Suchbedingung (»where«) 287  
        8.7.4 Sortierreihenfolge (»order«) 290  
        8.7.5 Limitieren der Suchergebnisse (»limit«, »offset«) 291  
        8.7.6 Statistische Berechnungen 291  
        8.7.7 Suchen mit dynamischen »find«-Methoden 292  
        8.7.8 Suche über SQL 294  
        8.7.9 Selbstdefinierte Suchmethoden (Scope) 294  
     8.8 Assoziationen 297  
        8.8.1 Eins-zu-viele-Assoziationen (1:n) 297  
        8.8.2 Eins-zu-eins-Assoziationen (1:1) 305  
        8.8.3 Viele-zu-viele-Assoziationen (n:m) 308  
        8.8.4 Polymorphe Assoziationen 314  
        8.8.5 Mehrere Assoziationen zum gleichen Model 318  
        8.8.6 Assoziationen mit Bedingungen 319  
        8.8.7 Eine Assoziation, um eigene Methoden erweitern 322  
        8.8.8 SQL-Abfragen reduzieren mit »includes« 322  
        8.8.9 Komplexe Suchabfragen mit »joins« 323  
     8.9 Callbacks 325  
     8.10 Vererbung 327  
  9 Steuerzentrale mit ActionController 332  
     9.1 Grundlagen 332  
     9.2 Aufgaben des Controllers 334  
        9.2.1 Daten aus HTTP-Anfragen empfangen 334  
        9.2.2 Datenbankabfragen über Model-Klassen 336  
        9.2.3 Setzen und Abfragen von Cookies 337  
        9.2.4 Setzen und Abfragen von Sessions 338  
        9.2.5 Templates aufrufen 339  
        9.2.6 Setzen von Flash-Messages 341  
        9.2.7 Weiterleitungen 344  
        9.2.8 Senden von Dateien und Daten 345  
        9.2.9 Authentifizierung 346  
     9.3 Filter 348  
        9.3.1 Filtertypen 348  
        9.3.2 Filter nur auf bestimmte Actions anwenden 350  
  10 Routing mit ActionDispatch 352  
     10.1 Routing-Grundlagen 352  
        10.1.1 Elementare Routing-Einträge 352  
        10.1.2 Bedingungen definieren mit »constraints« 355  
        10.1.3 Weiterleitungen 355  
        10.1.4 Die »root«-Route 355  
     10.2 Routing mit Ressourcen 356  
        10.2.1 Der REST-Standard 356  
        10.2.2 Ressourcen mit Generatoren erstellen 358  
        10.2.3 Routing für Ressourcen 358  
        10.2.4 Verschachtelte Ressourcen 360  
        10.2.5 Namespaces 363  
        10.2.6 Singuläre Ressourcen 365  
        10.2.7 Ressourcen erweitern 368  
  11 HTML5, Sass und CoffeeScript mit ActionView 372  
     11.1 ERB-Templates 373  
     11.2 Erstellung von Templates 375  
     11.3 Helper 376  
        11.3.1 Helper für Verlinkungen 377  
        11.3.2 Helper zur Zahlenformatierung 384  
        11.3.3 Helper zur Textmanipulation 389  
        11.3.4 Helper zur Entfernung von HTML-Code 392  
        11.3.5 Sonstige Helper 393  
        11.3.6 Eigene Helper entwickeln 395  
     11.4 Layouts 396  
        11.4.1 Mehrere »yield«-Bereiche 397  
        11.4.2 Verschachtelte Layouts 399  
        11.4.3 Layouts im Controller festlegen 399  
     11.5 Formulare 400  
        11.5.1 Formulare mit Bezug zu einem Model 400  
        11.5.2 Validierung 422  
        11.5.3 Formulare mit Bezug zu mehr als einem Model 424  
        11.5.4 Formulare ohne Bezug zu einem Model 426  
     11.6 Partials 429  
        11.6.1 Übergabe von Variablen mit »locals« 432  
        11.6.2 Shared Partials 433  
        11.6.3 Layout-Partials 434  
     11.7 Haml als alternatives Template-System 434  
     11.8 Asset Pipeline 435  
        11.8.1 Asset-Verzeichnisse 436  
        11.8.2 Bilder einbinden 437  
        11.8.3 Stylesheets und JavaScripts einbinden 438  
     11.9 Stylesheets mit Sass 441  
        11.9.1 Verschachtelung 442  
        11.9.2 Variablen 442  
        11.9.3 Vererbung 443  
        11.9.4 Mixins 444  
     11.10 JavaScript mit CoffeeScript 445  
  12 E-Mails senden mit ActionMailer 448  
     12.1 Beispielprojekt: Kontaktformular 448  
     12.2 HTML-E-Mails 460  
     12.3 Layouts 461  
     12.4 E-Mails mit Anhängen 462  
     12.5 Konfiguration 464  
  13 Nützliche Helfer mit ActiveSupport 466  
     13.1 Zahlen 467  
        13.1.1 Vielfaches 467  
        13.1.2 Ordinalzahlen 467  
        13.1.3 Rundungen 468  
        13.1.4 Kapazitätseinheiten 468  
        13.1.5 Datum und Zeit 469  
     13.2 Zeichenketten 473  
     13.3 Arrays 475  
     13.4 Hashes 477  
     13.5 Datentypunabhängig 479  
  14 Webservices mit ActiveResource 482  
     14.1 Was sind Webservices? 482  
     14.2 Einen Webservice anbieten 483  
     14.3 Zugriff auf Webservices mit ActiveResource 486  
  15 Mehrsprachige Applikationen 488  
     15.1 Konfiguration 488  
     15.2 Sprachauswahl 489  
     15.3 Übersetzungsdateien 489  
        15.3.1 Fertige Übersetzungsdateien importieren 491  
     15.4 Übersetzen und lokalisieren 492  
        15.4.1 Texte 492  
        15.4.2 Texte mit Platzhaltern 494  
        15.4.3 Texte mit Pluralisierung 494  
        15.4.4 Datums- und Zeitformatierung 495  
        15.4.5 Dezimalzahlen 496  
        15.4.6 Währungen 497  
        15.4.7 Übersetzung von Formularen 498  
        15.4.8 Weitere Helper 499  
        15.4.9 Ganzseitige Übersetzungen 500  
  16 Unobtrusive JavaScript und Ajax mit jQuery 502  
     16.1 JavaScript-Frameworks 502  
        16.1.1 jQuery 502  
        16.1.2 jQuery UI 502  
        16.1.3 Einbinden der JavaScript-Bibliotheken 503  
     16.2 Unobtrusive JavaScript 503  
        16.2.1 Grundlagen 504  
        16.2.2 Unobtrusive JavaScript in Rails 505  
     16.3 Ajax 506  
        16.3.1 Grundlagen 507  
        16.3.2 Ajax in Rails 508  
     16.4 Beispiele 510  
        16.4.1 Bookmark per Ajax löschen 510  
        16.4.2 Ein Bookmark per Ajax hinzufügen 513  
  17 Sicherheit, Deployment und Optimierung durch Caching 518  
     17.1 Sicherheit 518  
        17.1.1 SQL Injection 518  
        17.1.2 Mass Assignment 519  
        17.1.3 Cross-Site-Scripting (XSS) 522  
        17.1.4 Cross-Site Request Forgery (CSRF/XSRF) 523  
        17.1.5 Session Hijacking und Fixation 524  
     17.2 Deployment 526  
        17.2.1 Cloud Computing 526  
        17.2.2 Heroku 527  
     17.3 Optimierung durch Caching 530  
        17.3.1 Page-Caching 531  
        17.3.2 Action-Caching 541  
        17.3.3 Fragment-Caching 544  
        17.3.4 Caching mit der Asset Pipeline 549  
  A Die wichtigsten Ruby-Klassen 554  
     A.1 Zahlen 554  
     A.2 Zeichenketten 557  
        A.2.1 »here-document« 559  
        A.2.2 Ausdrücke in Zeichenketten 560  
        A.2.3 Die Methode »length« 561  
        A.2.4 Die Methode »split« 561  
        A.2.5 Zeichenketten formatieren 562  
        A.2.6 Groß- und Kleinschrift 563  
        A.2.7 Teil-Stings 564  
        A.2.8 In Zeichenketten suchen 566  
        A.2.9 Etwas einer Zeichenkette hinzufügen 567  
        A.2.10 Angehängte Zeichen löschen 568  
        A.2.11 Leerräume löschen 569  
        A.2.12 Zeichenketten wiederholen 569  
        A.2.13 Strings in Zahlen konvertieren 569  
        A.2.14 Zeichenketten verschlüsseln 571  
        A.2.15 Zeichen in einer Zeichenkette zählen 571  
        A.2.16 Eine Zeichenkette umkehren 572  
        A.2.17 Doppelte Zeichen entfernen 572  
        A.2.18 Bestimmte Zeichen entfernen 573  
     A.3 Symbole 573  
     A.4 Reguläre Ausdrücke 574  
        A.4.1 Syntax von regulären Ausdrücken 574  
        A.4.2 Anwendungsbeispiele aus der Praxis 577  
     A.5 Arrays 580  
        A.5.1 Ein Array erzeugen 580  
        A.5.2 Auf Array-Elemente zugreifen 581  
        A.5.3 Auf die Länge eines Arrays zugreifen 583  
        A.5.4 Arrays vergleichen 584  
        A.5.5 Ein Array sortieren 584  
        A.5.6 Zufall 586  
        A.5.7 Nach Elementen in einem Array suchen 587  
        A.5.8 Differenz zwischen zwei Arrays bestimmen 589  
        A.5.9 »nil«-Werte aus einem Array entfernen 589  
        A.5.10 Bestimmte Array-Elemente entfernen 589  
        A.5.11 Ein Array umkehren 591  
        A.5.12 Doppelte Einträge aus einem Array löschen 591  
        A.5.13 Iteratoren 591  
     A.6 Hashes 593  
        A.6.1 Einen Hash erzeugen 594  
        A.6.2 Schlüssel-Wert-Paare löschen 596  
        A.6.3 Über einen Hash iterieren 597  
        A.6.4 Schlüssel und Wert in einem Hash vertauschen 597  
        A.6.5 Schlüssel und Werte in einem Hash finden 598  
        A.6.6 Einen Hash in ein Array extrahieren 599  
        A.6.7 Nach Schlüssel-Wert-Paaren suchen 599  
        A.6.8 Einen Hash sortieren 600  
        A.6.9 Zwei Hashes miteinander mischen 600  
        A.6.10 Einen Hash aus einem Array erzeugen 601  

Kategorien

Service

Info/Kontakt