lezione guidata ruby on rails show
DESCRIPTION
Lezione guidati sull'azione show per visualizzare un record, di una tabella relazionale, identificato da un valore della sua chiave primaria idTRANSCRIPT
![Page 1: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/1.jpg)
Lezione guidata Ruby on Rails
2) action ‘show’
Prof. Silvano Natalizi, maggio 2009
Esercitazione VA Liceo Tecnico
![Page 2: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/2.jpg)
Dopo aver creato il modello multisala ed il metodo new
Nella precedente ‘lezione guidata’, abbiamo creato il modello multisala, il controllore multisalas ed il metodo new per inserire dei record nella tabella multisalas.
Ora creiamo l’azione ‘show’ per leggere un record dalla tabella multisalas
![Page 3: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/3.jpg)
Azione show
Quale codice bisogna scrivere per implementare un’azione ?
In generale per ogni azione bisogna scrivere un metodo nel controllore ed una view
In questo caso va scritto il metodo show e la view show.html.erb
![Page 4: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/4.jpg)
Metodo show
1. apri il controllore multisalas con un editor
2. scrivi le istruzioni:
def show
@multisala=Multisala.find(params[:id])
end
![Page 5: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/5.jpg)
params[:id]
params[:id] contiene i valori dei campi di una riga della tabella relazionale multisalas, della riga identificata univocamente da un valore dato alla
chiave primaria id.
Ma questo valore chi lo fornisce a id ?Come facciamo a scegliere questo valore ?
![Page 6: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/6.jpg)
Digitiamo il valore di id nel url
Possiamo digitare il valore di id nell’indirizzo url della pagina webhttp://localhost:3000/multisalas/1http://localhost:3000/multisalas/2http://localhost:3000/multisalas/3….
![Page 7: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/7.jpg)
http://localhost/multisalas/1
lancia il server
ruby script/server apri il browser con l’indirizzo url
http://localhost:3000/multisalas/1 verifica l’errore
Unknown action
![Page 8: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/8.jpg)
Inserisci la nuova route
Rails deve sapere quale codice eseguire per la route http//localhost:3000/multisalas/1
Apri il file di configurazione routes.rb nella cartella config
Aggiungi all’inizio del file la seguente riga:
map.connect ‘/multisalas/:id’, :controller=>’multisalas’, :action=>’show’
![Page 9: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/9.jpg)
Aggiungi anche le route dei metodi ‘new’ e ‘create’
Aggiungi all’inizio del file config/routes.rb:
map.connect ‘multisalas/new’, :controller=>’multisalas’, :action=>’new’
map.connect ‘multisalas/create’, :controller=>’multisalas’, :action=>’create’
Fai attenzione alle virgole ed ai segni di virgolette ‘ (non sono apostrofi)
![Page 10: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/10.jpg)
Il file routes.rb dopo le nostre modifiche
![Page 11: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/11.jpg)
Leggiamo il record di chiave id=3
apri la pagina http://localhost:300/multisalas/3 se ricevi il messaggio
ActiveRecord::RecordNotFound in MultisalasController#show
Couldn't find Multisala with ID=2 non ti spaventare, significa che non c’è il record
con chiave 3. In tal caso prova altre chiavi, come 1,2…
Quando ricevi il messaggio Template is missing, va bene perché ancora dobbiamo scrivere la view show.html.erb
![Page 12: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/12.jpg)
show.html.erb
scrivere il seguente codice e salvarlo nella cartella views/multisalas
<h1>Multisala</h1>
<p><b>chiave primaria:</b> <%= @multisala.id %> </p>
<p><b>nome :</b> <%= @multisala.nome %> </p>
<p><b>numero sale :</b> <%= @multisala.numerosale%></p>
<p><b>localita' :</b> <%= @multisala.localita %> </p>
![Page 13: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/13.jpg)
Ricaricare la pagina
ricarica la pagina http://localhost/multisalas/3 verifica di ottenere il seguente risultato :
![Page 14: Lezione Guidata Ruby On Rails Show](https://reader035.vdocumenti.com/reader035/viewer/2022062514/558a1a28d8b42ad7618b45be/html5/thumbnails/14.jpg)
Continua con l’azione ‘update’