#!/usr/bin/ruby -w require "sinatra" require "slim" require "sqlite3" #1. # - Kontrollera gems (sinatra, slim, sqlite). Kommer du behöva sessions? Troligen ej, ska endast utföra CRUD på databasen. # - Se hur Slimfiler är organierade i mappstrukturen. Följer det REST? Hur kallar man på en slimfil i en mapp? #2. Starta upp applikationen och inspektera koden i Chrome (högerklick>inspect). Hur ser länkarna ut? Finns de som routes i app.rb? #3. När vi klickar på ett album vill vi även se artisten (inte bara id). Gör ett andra anrop till db och skicka med i locals. #4. Skapa en sida där vi lägger till nya album för tex Artisten ACDC (ArtistId 1). Hitta gärna på nya namn på skivorna #5. Skapa funktionalitet för att ta bort album #6. Skapa funktionalitet för att uppdatera artistinformation db_cache = SQLite3::Database.new("db/chinook-crud.db") # behöver inte skapa nya handlers varje gång vi ska "titta" i databasen db_cache.results_as_hash = true # Har därmed en "cache" get "/" do slim(:start) end get "/albums" do result = db_cache.execute("SELECT * FROM albums") p result slim( :"albums/index", locals: { albums: result } ) end get "/albums/:id" do id = params[:id].to_i result = db_cache.execute("SELECT * FROM albums WHERE ArtistId = ?", id).first slim( :"albums/show", locals: { result: result} ) end