Lezione Guidata Ruby On Rails Show

Preview:

DESCRIPTION

Lezione guidati sull'azione show per visualizzare un record, di una tabella relazionale, identificato da un valore della sua chiave primaria id

Citation preview

Lezione guidata Ruby on Rails

2) action ‘show’

Prof. Silvano Natalizi, maggio 2009

Esercitazione VA Liceo Tecnico

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

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

Metodo show

1. apri il controllore multisalas con un editor

2. scrivi le istruzioni:

def show

@multisala=Multisala.find(params[:id])

end

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 ?

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….

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

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’

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)

Il file routes.rb dopo le nostre modifiche

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

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>

Ricaricare la pagina

ricarica la pagina http://localhost/multisalas/3 verifica di ottenere il seguente risultato :

Continua con l’azione ‘update’