Sivut hienoiksi

Tässä osassa muokkaamme viewejä ja asennamme Bootstrap-tyylikirjaston

Sivut ovat nyt aika rumat. Emmehän edes tiedä, onko joku kirjautunut sisään vai ei. Muokataan viewejä niin että näkyvillä on Kirjaudu sisään -nappi jos kukaan ei ole kirjautunut, ja Kirjaudu ulos-nappi jos on. Haluamme myös näkyviin kirjautuneen käyttäjän nimen. Asennetaan ensin kuitenkin Bootstrap-tyylikirjasto, sillä siitä tulee olemaan paljon hyötyä tässä osassa. Lisätään Gemfile-tiedostoon


gem 'bootstrap-sass'
group :development do
 gem 'rails_layout'
end


Gemit asennetaan komennolla


bundle install

Asennetaan Bootstrap ajamalla

rails generate layout:install bootstrap3 --force

Käynnistä serveri sen jälkeen uudelleen. Katso selaimesta sovellusta ja huomaa ero!

Muokataan navigaatiopalkkia

Sivun yläreunassa on nyt musta navigaatiopalkki. Loogisinta on ilmoittaa navigaatiopalkissa kirjautuneen käyttäjän nimi. Myös Kirjaudu Ulos- ja Kirjaudu Sisään -napit sijoitetaan navigaatiopalkkiin.

Keskustelukysymys: Miten saamme tietää tällä hetkellä kirjautuneen käyttäjän?

Vastaus current_user -metodi ApplicationControlleriin. ApplicationControllerin metodeita voidaan kutsua muista controllereista. Helper_method-määrityksen avulla current_user -metodia voidaan kutsua myös vieweistä. Jos et jaksa koodata niin kopioi täältä



Kirjautuneen käyttäjän nimi näkyviin

Navigaatiolinkkien view on tiedosto app/views/layouts/_navigation_links.html.erb. Vieweihin saa kirjoitettua Rubyn ehdolauseita <% %> -tagien sisälle. <%= %> -tagi saa sisällään olevan sisällön näkyviin sivulle.



Kirjaudu sisään / Kirjaudu ulos

Saat selville rake routes -komennolla chat-hakemistossa sisäänkirjautumisen ja uloskirjautumisen reitit (siis esim signout_path). Esimerkiksi uloskirjautumislinkin koodi on siis

<%= link_to "Kirjaudu ulos", signout_path, class: 'navbar-brand' %>

Rakenna itse sisäänkirjautumisen linkki ja sijoita molemmat linkit _navigation_links.html.erb-tiedostoon oikeisiin kohtiin. Huom. lisää else-lause ifiin!

Vapaavalintaista tyylitystä

Kokeile Bootstrapin sivuilta esimerkiksi Buttons-kohdasta lisätä navigaatiolinkin classiin napin tyylitys btn btn-default.