Widmung

Für Juna und Aurelius.
Vorwort
1. Versionsauswahl und Installation
1.1. Ruby in der Version 1.8.x, 1.9.2 oder 1.9.3?
1.2. Rails 2.x oder 3.x?
1.3. Installation von Ruby on Rails 3.2 mit RVM auf Mac OS X 10.7
1.3.1. Xcode-Installation bzw. -Upgrade
1.3.2. Ruby 1.9.3 mit RVM installieren
1.3.3. Ruby Documentation generieren
1.3.4. Rails installieren
1.3.5. Und jetzt?
1.4. Installation von Ruby on Rails 3.2 mit RVM auf Debian 6.0 (Squeeze)
1.4.1. Vorbereitungen
1.4.2. Ruby 1.9.3 mit RVM installieren
1.4.3. Ruby Documentation generieren
1.4.4. Rails installieren
1.4.5. Und jetzt?
1.5. Installation von Ruby on Rails 3.2 mit RVM auf Ubuntu 12.04 LTS
1.5.1. Vorbereitungen
1.5.2. Ruby 1.9.3 mit RVM installieren
1.5.3. Ruby Documentation generieren
1.5.4. Rails installieren
1.5.5. Und jetzt?
2. Ruby-Grundlagen
2.1. Einleitung
2.2. Eine Skriptsprache
2.3. Hello World
2.3.1. puts und print
2.3.2. Kommentare
2.3.3. Hilfe per ri
2.4. irb
2.4.1. Kommentare im irb
2.5. Ruby ist objektorientiert
2.5.1. Methoden (Methods)
2.5.2. Klassen (Classes)
2.6. Variablen
2.6.1. Namenskonventionen
2.6.2. Strings
2.6.3. Ganzzahlen (Integer)
2.6.4. Bool'sche Werte (Booleans) und nil
2.6.5. Gültigkeitsbereich (Scope) von Variablen
2.7. Noch mal Methoden
2.7.1. Getter und Setter
2.7.2. Mitgelieferte Methoden bei String
2.7.3. Verketten von Methoden (Method chaining)
2.7.4. Von einem zum anderen konvertieren
2.7.5. Methode to_s bei eigenen Klassen
2.7.6. Ist + eine Methode?
2.8. if-Bedingung (if-Condition)
2.8.1. Kurzform
2.8.2. else
2.8.3. elsif
2.9. Schleifen (Loops)
2.9.1. while und until
2.9.2. Blöcke (Blocks) und Iteratoren (Iterators)
2.10. Arrays und Hashes
2.10.1. Arrays
2.10.2. Hashes
2.11. Sonstiges
2.11.1. Range
3. Erste Schritte mit Rails
3.1. Einleitung
3.1.1. Arbeits-Umgebung (Development)
3.1.2. Warum alles auf Englisch?
3.2. Statische Inhalte (HTML- und Grafik-Dateien)
3.2.1. Rails-Projekt anlegen
3.2.2. Statische Seiten
3.3. Dynamisch mit erb erzeugtes HTML
3.3.1. Programmieren in einer erb-Datei
3.3.2. Layouts
3.3.3. Instanz-Variablen vom Controller zum View übergeben
3.3.4. Partials
3.4. Redirects (Umleitungen)
3.5. Flash-Meldungen (Flash messages)
3.5.1. Verschiedene Arten von Flash-Meldungen
3.5.2. Verschiedene Syntaxen
3.5.3. Warum gibt es überhaupt Flash-Nachrichten?
3.6. Die Rails-Konsole (Console)
4. ActiveRecord
4.1. Howto zum Kapitel
4.1.1. Keine Lust auf SQL?
4.1.2. Blut lecken
4.2. Datenbank/Model anlegen
4.2.1. Die Attribute id, created_at und updated_at
4.2.2. Mögliche Datentypen in ActiveRecord
4.2.3. Namenskonventionen (Country vs. country vs. countries)
4.2.4. Datenbank-Konfiguration
4.3. Datensätze hinzufügen
4.3.1. create
4.3.2. new
4.3.3. new_record?
4.4. first, last und all
4.5. Mit seeds.rb die Datenbank betanken
4.5.1. Alternative Programmierung
4.5.2. seeds.rb aus bestehenden Daten generieren
4.5.3. UTF-8
4.6. Suchen und Finden mit Queries
4.6.1. find vs. where
4.6.2. find
4.6.3. where
4.6.4. exists?
4.6.5. order und reverse_order
4.6.6. limit
4.6.7. group
4.6.8. pluck
4.6.9. Berechnungen
4.6.10. SQL EXPLAIN
4.7. Einen Datensatz verändern
4.7.1. Einfaches Editieren
4.7.2. changed?
4.7.3. update_attributes
4.7.4. Locking
4.8. has_many – 1:n-Verknüpfung
4.8.1. Datensätze erstellen
4.8.2. Auf Datensätze zugreifen
4.8.3. Datensätze suchen
4.8.4. delete und destroy
4.8.5. Optionen
4.9. Many-to-Many – n:n-Verknüpfung
4.9.1. Vorbereitung
4.9.2. Die Verknüpfung
4.9.3. Die Verknüpfung funktioniert logischerweise wie has_many
4.10. has_one – 1:1-Verknüpfung
4.10.1. Vorbereitung
4.10.2. Verknüpfung
4.10.3. Consolen-Beispiele
4.10.4. has_one vs. belongs_to
4.11. Polymorphe Assoziationen (polymorphic associations)
4.12. Einen Datensatz löschen
4.12.1. destroy
4.12.2. delete
4.13. Transaktionen (Transactions)
4.14. Named Scopes
4.14.1. Vorbereitung
4.14.2. Einfache NamedScopes
4.14.3. Lambda
4.14.4. Parameter übergeben
4.14.5. Neue Datensätze mit NamedScopes anlegen
4.15. Validierung (Validation)
4.15.1. Vorbereitung
4.15.2. Die Grundidee
4.15.3. validates_presence_of
4.15.4. validates_length_of
4.15.5. validates_numericality_of
4.15.6. validates_uniqueness_of
4.15.7. validates_inclusion_of
4.15.8. validates_exclusion_of
4.15.9. validates_format_of
4.15.10. validates
4.16. Migrations (Migrationen)
4.16.1. Welche Datenbank wird benutzt?
4.16.2. Index anlegen
4.16.3. Sonstiges
4.16.4. Weitere Dokumentation
4.17. Sonstiges
4.17.1. Default-Werte
5. Scaffolding
5.1. Einleitung
5.2. Generieren eines Scaffolds
5.3. Anlegen der Datenbank mit Beispieldaten
5.4. Die Routen
5.5. Der Controller
5.6. Die Views
5.6.1. Wo liegen die Views?
5.6.2. Zugriff per XML oder JSON
5.7. Wann sollte man Scaffolding benutzen?
5.7.1. Beispiel für ein Minimal-Projekt
5.7.2. Fazit
6. Routen (routes)
6.1. Einstieg
6.2. get
6.3. root :to => 'welcome#index'
6.4. match
6.4.1. Parameter
6.4.2. Constraints (Einschränkungen)
6.4.3. Redirects
6.5. resources
6.5.1. Nested Resources
6.6. Weitere Informationen zum Thema Routes
7. Tests
7.1. Einleitung
7.2. Beispiel für einen User in einem Web-Shop
7.2.1. Functional Tests
7.2.2. Unit Tests
7.3. Fixtures
7.3.1. Statische Fixtures
7.3.2. Fixtures mit ERB
7.3.3. Fixtures mit has_many und belongs_to
7.4. Unit Tests
7.5. Functional Tests
7.5.1. Workflow für eine Veränderung im Functional Test und im Controller
7.5.2. Flash-Nachrichten testen
7.6. Integration Tests
7.7. Mehr zum Thema Testing
8. Cookies und Sessions
8.1. Cookies
8.1.1. Permanente Cookies (permanent cookies)
8.1.2. Signierte Cookies (signed cookies)
8.2. Sessions
8.2.1. Breadcrumbs per Session
8.2.2. reset_session
8.2.3. Sessions in der Datenbank speichern
9. Action Mailer
9.1. Konfiguration des E-Mail-Servers
9.1.1. Versand per lokalem Sendmail
9.1.2. Versand per direktem SMTP
9.2. Eigene X-Header
9.3. HTML-E-Mails
9.4. Anhänge (Attachments)
9.4.1. Eingebettete Anhänge (Inline Attachments)
10. Internationalisierung
10.1.
11. Ruby on Rails 3 Schulungen von Stefan Wintermeyer
11.1. Für wen ist die Schulung geeignet?
11.2. Das Kursprogramm
11.3. Über den Trainer
11.4. Termine und Schulungsorte
11.4.1. Andere Termine und Schulungsorte
11.5. Was müssen Sie mitbringen?
11.6. Preise und Leistungen
11.7. Noch Fragen?
12. Danksagungen
12.1. Der Verlag
12.2. Ruby und Rails Rockstars
12.3. Helfer
12.4. Twitter
12.5. Mailinglisten
12.6. Lesern
A. Weiterführende Rails Dokumentation
A.1. Online
A.2. Offline
Stichwortverzeichnis