picojournal15

PicoJournal – Devise Username eingebaut

Bisher konnte man sich nur mittels E-Mail anmelden und nun will ich aber auch den Username dabei haben. Da das Devise Plugin sehr viel selbst macht und ich damit noch nicht herumexperimentiert habe, könnte sich das als schwer herausstellen. Finden wirs heraus!

pfeildings

1.Datenbank anpassen

Um in Devise ein neues Feld hinzuzufügen müssen mehrere Dinge geschehen. Als erstes braucht die Datenbank, die Devise angelegt hat, eine neue Spalte für den Username. Das geht über die Konsole mit folgendem Befehl:

   rails generate migration AddUsernameToUsers (<-name frei wählbar)

Die Konsole teilt einem mit, dass es eine neue Migration angelegt hat. Diese liegt unter db/migrate. Beim Öffnen der erstellten Datei findet sich noch nicht allzu viel. Ich ergänze diese jetzt wie folgt:

Um diesen Migration zu übernehmen führe ich den Befehl rake db:migrate aus.

 

2. Sicherheitslücken schließen

Damit ein böser Hacker nichts kaputt macht, bauen wir sogenannte strong parameters ein. Diese kann man einfach wie folgt in den ApplicationController kopieren:

Mit dieser Anpassung lässt sich der Username nun nur noch dort ändern wo es vorgesehen ist.

 

3. HTML Form anpassen

Nun muss das entsprechende Username Label auch angezeigt werden. Dafür gehe ich in den views/devise Ordner und öffne die registrations/new.html.erb. Hier wird das neue Username Feld geaddet.

Jetzt noch an die Stellen an der der Username auftauchen soll folgendes posten: <%= current_user.email %>

4. Fertig!

Es hat mich ganz schön viel Zeit gekostet diese leichten Schritte ausfindig zu machen und zum laufen zu bringen ( sowohl lokal, als auch auf Heroku). Aber nun das Ergebnis! Ich kann mich mit Username anmelden und dieser taucht an den richtigen Stellen auf 🙂

rainer

 

pfeildings

Link zur Live Version

 

username

pfeildings

Das war es für heute. Nächste Wochedann vielleicht mal ein Paar Arbeiten an der Hauptfunktionalität, den Tagebucheinträgen.

*repariert Fahrrad*