Ruby on Rails & Heroku Demo (09.03.2016) | TTY-Piiri

Ruby on Rails & Heroku Demo (09.03.2016)

falckk@tut.fi - Tuesday, March 8, 2016 - 21:17

Demon tavoitteena on kuvata, kuinka Ruby on Rails web-ohjelmointikehyksellä tehdään yksinkertainen CRUD-sovellus, joka julkaistaan Heroku-alustalla. 

Jos demon yhteydessä haluaa koodata mukana, kannattaa jo etukäteen pystyttää Ruby on Rails ympäristö omalle koneelle, luoda tunnus Herokuun ja asentaa Herokun komentorivi-integraatio ja asentaa paikallinen PostgreSQL-tietokanta. Jos Git-versionhallintaa ei löydy, sekin tulisi olla asennettuna, jotta paikallisen koodin siirtäminen Herokuun käy kätevästi. Itse olen tehnyt kaiken OSX-ympäristössä, mutta käyttämistäni ohjeista löytyy myös Windows- ja Linux-versiot.

  1. Ruby on Rails

Rails Girls tarjoaa selkeät ohjeet ympäristön pystyttämiseen (http://guides.railsgirls.com/install), joita seuraamalla kehitysympäristön pystytys onnistuu eri alustoille. Tarkennuksena vielä, että asennukseen riittää kun suorittaa ohjeessa mainitut komennot (esim. OSX kohdat 3a1-3a6)

  1. Heroku-tili

Ilmaisen Heroku-tilin luominen tapahtuu osoitteessa https://signup.heroku.com/ Samalla valitaan pudotusvalikosta kieleksi Ruby (tai millä kielellä kehitystä aikookaan tehdä)

  1. Heroku Toolbelt

Heroku Toolbelt on komentorivityökalu (CLI), joka integroi Herokun omat komennot osaksi komentorivitulkkia. Se mahdollistaa esimerkiksi kirjautumisen Herokuun, uusien ohjelmien julkaisun ja muutosten tekemisen Git:n avulla. Paketti eri käyttöjärjestelmille löytyy osoitteesta https://toolbelt.heroku.com/

  1. PostgreSQL

Heroku käyttää PostgreSQL-tietokantaa, kun taas oletuksena Ruby on Rails käyttää SQLite-tietokantaa. Lisäksi Heroku suosittelee käyttämään samaa tietokantaa sekä kehityksen, että tuotannon aikana (lue paikallisesti ja Herokussa). Jos haluaa käyttää SQLiteä paikallisesti, löytyy siihen ohjeet täältä.

Ohjeet paikalliseen asennukseen löytyvät eri järjestelmille löytyvät https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

OSX:n kanssa Postgres.app tarjoaa tietokannan valmiina pakettina. Asennuksen jälkeen tulee kuitenkin lisätä juurihakemiston .bash_profile tiedostoon (~/.bash_profile) seuraava rivi

”export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin”

Windows-ympäristössä voi seurata esim. näitä ohjeita. Linux ei ilmeisesti kyseistä muutosta vaadi.

  1. Git

Git on versionhallintaohjelmisto, jota hyödynnetään tässä tapauksessa siirtämään paikallisesti, omalla tietokoneella tehdyt koodit Herokun-pilvipalveluun. OSX:n tapauksessa Git asennus on käsitelty kohdassa 1, Windows-ympäristössä Git asentuu Heroku Toolbeltin mukana ja Linux-käyttäjiltä Git löytynee.

Tarvittaessa Git-asennusohjeet ja tiedostot löytyvät osoitteesta https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

      6. Ruby on Rails sovellus

Alla on listattu demossa käytetyt komennot, joiden avulla luodaan blog-niminen sovellus, Post-ominaisuus hyödyntäen scaffolding-komentoa ja testataan toiminta paikallisella webserverillä.

  • Luodaan uusi sovellus 'blog': rails new blog --database=postgresql
  • Siirrytään sovelluksen hakemistoon: cd blog/
  • Luodaan MVC-ominaisuudet scaffolding-komennolla: rails generate scaffold Post name:string title:string content:text
  • Muokataan tiedostoa config/routes.rb, jonne lisätään seuraava rivi: root 'posts#index'
  • Ajetaan muutokset tietokantaan: rake db:migrate
  • Käynnistetään paikallinen webpalvelin: rails s
  • Blogi on nyt käytettävissä (oletus)osoitteessa localhost:3000 

       7. Sovelluksen julkaisu Herokussa

  • Lisätään seuraavat rivit tiedostoon Gemfile: 
  •             gem 'rails_12factor', group: :production
  •             ruby '2.3.0'  (tähän määritellään se Ruby-versio, joka itsellä on käytyössä, löytyy esim. komennolla ruby -v)
  • Perustetaan uusi Git-repositorio: Git init
  • Lisätään kaikki tiedostot repositorioon: Git add .
  • Tehdään ensimmäinen commit: git commit -m "init"
  • (Kirjaudutaan tarvittaessa Herokuun: heroku login)
  • Luodaan uusi Heroku sovellus: heroku create
  • Viedään paikalliset muutokset Gitin avulla Herokuun: git push heroku master
  • Ajetaan tietokantamuutokset Herokussa: heroku run rake db:migrate
  • Avataan Herokuun luotu sovellus: heroku open