Letzte Woche habe ich endlich Heroku bezwungen (zumindest größtenteils) und kann mich wieder der Rails Entwicklung zuwenden. Leider habe ich heute nicht soo viel Zeit zum experimentieren und da ich ein Rails Laie bin, wird in den nächsten 2 Stunden wohl nicht allzu viel Fortschritt zu erwarten sein. Ich nehme mir also eine kleine Aufgabe vor und versuche die restlichen Seiten, wie Stats und About in Rails einzufügen.
Das Problem mit den Seiten war zuvor, dass gewöhnlich Links in Rails nicht zu funktionieren scheinen. Ich mache mich also über Rails Links schlau. Ein Thema, das ich schon einmal betrachtet habe, aber es gibt einfach zu viel Rails Magie, da kann man sich nicht alles merken. Es scheint ich habe das Problem schon einmal teils gelöst und nur einen Schritt vergessen.
Zunächst benötigt man einen neuen PageController, der so aussieht:
class PagesController < ActionController::Base def stats end def about end def home end end
Durch die schon erwähnte Rails Magie werden nur durch das Erstellen dieser Methoden automatisch einige Helper erzeugt, wodurch man dann auf diese Seiten verlinken kann. Dazu braucht es noch etwas Code in der Routingtabelle:
Rails.application.routes.draw do devise_for :users resources :days root to: "welcome#index" #Das ist neu! get '/stats' => 'pages#stats' get '/about' => 'pages#about' get '/home' => 'pages#home' end
Cool cool. Jetzt kann man die Links in die views mit den magischen Methoden einfügen. Den einen Schritt den ich hier vergessen habe, ist die Ordnerstruktur anzupassen. Die Seiten des pagesController müssen in views/pages liegen. Die Links gehen dann so:
<!--Schnipsel mit link --> <li> <%= link_to 'Stats', stats_path %> </li> <li> <%= link_to 'About', about_path %> </li>
Danach habe ich noch einige Links innerhalb der Dateien angepasst, aber dann ging mir die Zeit aus. Ein komischer Bug, der wahrscheinlich noch damit zusammenhängt, ist dass auf manchen Unterseiten die Styles verschwinden, wenn man mit F5 refresht. Das muss weg und zusätzlich sollte ich das Menü mal in eine seperate Datei auslagern, da ich die Links nicht immer auf allen Unterseiten bearbeiten will.
Nächste Woche habe ich mehr Zeit (denke ich, habe ich diese Woche aber auch gedacht heheee), dann geht’s rund! Weniger Bugs, mehr Features!
*packt Regenschirm ein und fährt nach Augsburg*