Rails 5.1 Consulting und Schulung vom Autor:
www.wintermeyer-consulting.de/rails/

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. Unterschied Produktiv- und Entwicklungssystem
1.4. Mac OS X 10.7 - Installation von Ruby on Rails 3.2 mit RVM
Xcode-Installation bzw. -Upgrade
Ruby 1.9.3 mit RVM installieren
Ruby Documentation generieren
Rails installieren
Und jetzt?
1.5. Debian 6.0 (Squeeze) - Installation von Ruby on Rails 3.2
Vorbereitungen
Ruby 1.9.3 mit RVM installieren
Ruby Documentation generieren
Rails installieren
Und jetzt?
1.6. Ubuntu 12.04 LTS - Installation von Ruby on Rails 3.2 mit RVM
Vorbereitungen
Ruby 1.9.3 mit RVM installieren
Ruby Documentation generieren
Rails installieren
Und jetzt?
1.7. Windows - Installation von Ruby on Rails 3.2
Und jetzt?
2. Ruby-Grundlagen
2.1. Einleitung
2.2. Eine Skriptsprache
2.3. Hello World
puts und print
Kommentare
Hilfe per ri
2.4. irb
Kommentare im irb
2.5. Ruby ist objektorientiert
Methoden (Methods)
Klassen (Classes)
2.6. Variablen
Namenskonventionen
Strings
Ganzzahlen (Integer)
Bool'sche Werte (Booleans) und nil
Gültigkeitsbereich (Scope) von Variablen
2.7. Noch mal Methoden
Getter und Setter
Mitgelieferte Methoden bei String
Verketten von Methoden (Method chaining)
Von einem zum anderen konvertieren
Methode to_s bei eigenen Klassen
Ist + eine Methode?
2.8. if-Bedingung (if-Condition)
Kurzform
else
elsif
2.9. Schleifen (Loops)
while und until
Blöcke (Blocks) und Iteratoren (Iterators)
2.10. Arrays und Hashes
Arrays
Hashes
2.11. Sonstiges
Range
3. Erste Schritte mit Rails
3.1. Einleitung
Arbeits-Umgebung (Development)
Warum alles auf Englisch?
3.2. Statische Inhalte (HTML- und Grafik-Dateien)
Rails-Projekt anlegen
Statische Seiten
3.3. Dynamisch mit erb erzeugtes HTML
Programmieren in einer erb-Datei
Layouts
Instanz-Variablen vom Controller zum View übergeben
Partials
3.4. Redirects (Umleitungen)
3.5. Flash-Meldungen (Flash messages)
Verschiedene Arten von Flash-Meldungen
Verschiedene Syntaxen
Warum gibt es überhaupt Flash-Nachrichten?
3.6. Die Rails-Konsole (Console)
3.7. Was ist ein Generator?
3.8. Misc
"Model View Controller"-Architektur (MVC)
Helper
DRY – Don't repeat yourself
Convention Over Configuration
4. ActiveRecord
4.1. Howto zum Kapitel
Keine Lust auf SQL?
Blut lecken
4.2. Datenbank/Model anlegen
Die Attribute id, created_at und updated_at
Mögliche Datentypen in ActiveRecord
Namenskonventionen (Country vs. country vs. countries)
Datenbank-Konfiguration
4.3. Datensätze hinzufügen
create
new
new_record?
4.4. first, last und all
4.5. Mit seeds.rb die Datenbank betanken
Alternative Programmierung
seeds.rb aus bestehenden Daten generieren
UTF-8
4.6. Suchen und Finden mit Queries
find vs. where
find
where
exists?
order und reverse_order
limit
group
pluck
Berechnungen
SQL EXPLAIN
4.7. Einen Datensatz verändern
Einfaches Editieren
changed?
update_attributes
Locking
4.8. has_many – 1:n-Verknüpfung
Datensätze erstellen
Auf Datensätze zugreifen
Datensätze suchen
delete und destroy
Optionen
4.9. Many-to-Many – n:n-Verknüpfung
Vorbereitung
Die Verknüpfung
Die Verknüpfung funktioniert logischerweise wie has_many
4.10. has_one – 1:1-Verknüpfung
Vorbereitung
Verknüpfung
Consolen-Beispiele
has_one vs. belongs_to
4.11. Polymorphe Assoziationen (polymorphic associations)
4.12. Einen Datensatz löschen
destroy
delete
4.13. Transaktionen (Transactions)
4.14. NamedScopes
Vorbereitung
Einfache NamedScopes
Lambda
Parameter übergeben
Neue Datensätze mit NamedScopes anlegen
4.15. Validierung (Validation)
Vorbereitung
Die Grundidee
presence
length
numericality
uniqueness
inclusion
exclusion
format
Allgemeine Validierungs-Optionen
Eigene Validations schreiben
Weitere Doku
4.16. Migrations (Migrationen)
Welche Datenbank wird benutzt?
Index anlegen
Sonstiges
Weitere Dokumentation
4.17. Sonstiges
Callbacks
Default-Werte
5. Scaffolding und REST
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
Wo liegen die Views?
link_to
form_for
Zugriff per XML oder JSON
5.7. Wann sollte man Scaffolding benutzen?
Beispiel für ein Minimal-Projekt
Fazit
6. Routen (routes)
6.1. Einstieg
6.2. get
6.3. Namen der Routen
:as
6.4. root :to => 'welcome#index'
6.5. match
Parameter
Constraints (Einschränkungen)
Redirects
6.6. resources
Bestimmte Routen mit :only oder :except auswählen
Nested Resources
6.7. Weitere Informationen zum Thema Routes
7. Tests
7.1. Einleitung
7.2. Beispiel für einen User in einem Webshop
Functional Tests
Unit Tests
7.3. Fixtures
Statische Fixtures
Fixtures mit ERB
7.4. Integration Tests
7.5. rake stats
7.6. Mehr zum Thema Testing
8. Cookies und Sessions
8.1. Cookies
Permanente Cookies (permanent cookies)
Signierte Cookies (signed cookies)
8.2. Sessions
Breadcrumbs per Session
reset_session
Sessions in der Datenbank speichern
9. Action Mailer
9.1. Konfiguration des E-Mail-Servers
Versand per lokalem Sendmail
Versand per direktem SMTP
9.2. Eigene X-Header
9.3. HTML-E-Mails
9.4. Anhänge (Attachments)
Eingebettete Anhänge (Inline Attachments)
9.5. Weitere Informationen
10. Internationalisierung
10.1. Einführung
I18n.t
Lokalisierte Views (localized views)
10.2. Eine einsprachig deutsche Rails-Applikation
Deutschsprachige Pfade
10.3. Mehrsprachige Rails-Applikation
I18n.locale zum Definieren der gewünschten Sprache benutzen
Mehrsprachige Scaffolds
10.4. Weiterführende Informationen
11. Bundler und Gems
11.1. Gems
11.2. Bundler
bundle update
bundle outdated
bundle exec
Weitere Informationen zum Thema Bundler
12. Asset Pipeline
12.1. Einleitung
Manifest Dateien
rake assets:precompile
Der Fingerabdruck
12.2. Coding Links zu einem Asset
Coding Link zu einer Grafik (Image)
Coding Link zu einer JavaScript-Datei
Coding Link zu einer CSS-Datei
Defaults in der application.html.erb
13. JavaScript
13.1. Einleitung
jQuery
CoffeeScript
13.2. JavaScript Helper
javascript_tag
link_to_function
button_to_function
13.3. JavaScript und CoffeeScript in der Asset Pipeline
Formular abhängig von Eingaben verändern
14. Caching
14.1. Einleitung
Eine einfache Beispielapplikation
Normale Geschwindigkeit der zu optimierenden Seiten
14.2. HTTP-Caching
Last-Modified
Etag
Etag und Last-Modified kombinieren
Die Magie von touch
stale?
Proxies mitbenutzen (public)
Cache-Control mit einem Zeitlimit
14.3. Page Caching
Page Caching im Development-Modus aktivieren
Company Index- und Show-View cachen
Page Caches automatisch löschen
14.4. Fragment Caching
Fragment Caching im Development-Modus aktivieren
Tabelle des Index-View cachen
Fragment Cache löschen
Auto-Expiring Caches
Software-Versionierung und current_user
Cache Store
14.5. Vorheizen
15. Webserver im Produktionsbetrieb
15.1. Einleitung
Debian 6
15.2. Grundinstallation Webserver
Buildsystem
Node.js
nginx
User Deployer anlegen
Verzeichnisstruktur anlegen
Rails-Umgebung für den User Deployer aufsetzen
Datenbank
Memcache installieren
15.3. Webserver ohne Deployment
Neues Rails-Projekt aufsetzen
Neue Version des Rails-Projektes einspielen
15.4. Webserver mit Capistrano-Deployment
Entwicklungssystem
Webserver
cap deploy:setup
Webserver-Konfiguration
sudo
Deployment
15.5. Sonstiges
Was noch zu tun ist
404 und Co.
Mehrere Rails-Server auf einem System
15.6. Cloud platform as a service Provider
16. Tipps und Tricks
16.1. Abkürzungen
16.2. Templates
Scaffold Controller Template
Model Template
17. Danksagungen
17.1. Boris Karnikowski
17.2. Lektorat
Dominik Bamberger
Brigitte Hamerski
17.3. Ruby und Rails Rockstars
17.4. Helfer
17.5. Twitter
17.6. Lesern
A. Weiterführende Rails Dokumentation
A.1. Webseiten
Stichwortverzeichnis

Autor

Stefan Wintermeyer