Neu: Das englische Ruby on Rails 4.0 Buch.

6.1. Einstieg

In Abschnitt 3.3, „Dynamisch mit erb erzeugtes HTML“ und Kapitel 5, Scaffolding und REST hatten wir schon mal kurz Kontakt mit Routes. Mit den in config/routes.rb enthaltenen Routen wird definiert, was in Rails Application passiert, wenn eine bestimmte URL vom Besucher der Webseite angesteuert wird. Eine Route kann statisch und dynamisch sein und evt. dynamische Werte mit Variablen an den Controller übergeben. Sollten mehrere Routen auf eine URL zutreffen, so gewinnt die in der config/routes.rb am oberste eingetragene.

Anmerkung

Wenn Sie wenig Zeit haben, können Sie dieses Kapitel erst einmal überspringen und später bei konkreten Fragen noch mal nachschlagen.
Bauen wir uns zuerst eine Test-Rails-Applikation zum Experimentieren:
MacBook:~ xyz$ rails new shop
[...]
MacBook:~ xyz$ cd shop
MacBook:shop xyz$
Mit rake routes können wir uns die Routen eines Projektes anzeigen lassen. Probieren wir das direkt im frischen Projekt aus:
MacBook:shop xyz$ rake routes

MacBook:shop xyz$
Nichts. Es sind in einem neuen Rails-Projekt keine Routen eingetragen.

Wichtig

Auch bei einem neuen Rails-Projekt können Sie nach dem Start des Rails-Servers mit rails server auf http://0.0.0.0:3000/ zugreifen. Wie kann dies ohne eine eingetragene Route funktionieren? Die Lösung liegt im Verzeichnis /public. Dort liegt die Datei public/index.html, und immer wenn im Verzeichnis /public eine Datei liegt, die zur angegebenen URL passt, bekommt diese eine höhere Priorität als eine Rails-Route. Falls keine Route definiert ist, wird automatisch in public nach index.html gesucht.
Bei einem neuen Rails-Projekt ist die Datei config/routes.rb mit vielen auskommentierten Beispielen bestückt. Für den Verlauf dieses Kapitels tun wir so, als wenn diese Beispiele nicht drin wären und zeigen immer nur die neu eingetragenen Routen an.

Autor

Stefan Wintermeyer