Lezione Guidata Ruby On Rails Insert

13
Lezione guidata Ruby on Rails 1) action :new Prof. Silvano Natalizi, maggio 2009 Esercitazione VA Liceo Tecnico

description

come creare una form per inserire i dati in una tabella relazionale, con l'azione new e create

Transcript of Lezione Guidata Ruby On Rails Insert

Page 1: Lezione Guidata Ruby On Rails Insert

Lezione guidata Ruby on Rails

1) action :new

Prof. Silvano Natalizi, maggio 2009

Esercitazione VA Liceo Tecnico

Page 2: Lezione Guidata Ruby On Rails Insert

Creare l’applicazione

1. Creare l’applicativo, ad esempio: cinema, 1. rails cinema2. cd cinema

2. Creare la prima tabella relazionale di nome multiSala con i campi nome, numerosale, località

1. ruby script/generate model multisala nome:string numerosale:integer localita:string

2. rake db:migrate

3. Creare il controllore cinema (al plurale) e il metodo new

1. ruby script/generate controller multisalas new

Page 3: Lezione Guidata Ruby On Rails Insert

Scrivere nel controllore cinemas le istruzioni del metodo new

1. Aprire con un editor (programmer’s notepad) il controllore multisalas ed inserire le istruzioni del metodo new e salva

1. def new

@multisala=Multisala.new

end

Page 4: Lezione Guidata Ruby On Rails Insert

Scrivere la form new.html.erb

1. Scrivere la form new.html.erb e salvarla nella cartella view/cinemas

1.

Page 5: Lezione Guidata Ruby On Rails Insert

Lanciare l’applicativo

1. Mandare in esecuzione il server1. ruby script/server

2. Aprire con firefox una pagina web con url1. localhost:3000/multisalas/new

3. Verificare che sia presente la form per l’inserimento dei dati

4. Verificare che premendo il bottone create si abbia l’errore Unknown action

5. L’errore è ovvio, ancora non abbiamo implementato il metodo create !

Page 6: Lezione Guidata Ruby On Rails Insert

Scrivere il metodo create

1. Scrivere il metodo create nel controllore multisalas

1. def create

@multisala=Multisala.new(params[:multisala])

@multisala.save

redirect_to :action=>’new’

end

Page 7: Lezione Guidata Ruby On Rails Insert

Inserire dei dati nella form e premere il bottone create

1. Inserire dei dati nella form e premere il bottone create

2. Verificare che venga reindirizzata la medesima pagina (con la medesima form di input)

3. Inserire altri dati

Page 8: Lezione Guidata Ruby On Rails Insert

Chiudere il server e verificare che i dati siano presenti nel database

1. Chiudere il server1. ctrl_c

2. cd db

2. Aprire il database development.sqlite31. sqlite3 development.sqlite3

3. Leggere tutti i campi e tutti i record della tabella multisalas

1. select * from multisalas;

4. Uscire dal database 1. .exit

Page 9: Lezione Guidata Ruby On Rails Insert

Inserire nel modello i validatori

1. Aprire il modello ed inserire i validatori e salvare class Multisala < ActiveRecord::Base

validates_presence_of :nome

validates_presence_of :numerosale validates_presence_of :localita validates_numericality_of :numerosale

end

Page 10: Lezione Guidata Ruby On Rails Insert

Inserire nella new.html.erb il messaggio

1. Inserire nella form new.html.erb la riga:

1. <%= f.error_messages %>

<h1>new.html.erb</h1><% form_for(@multisala, :url=>{:action=>'create'}) do |f| %> <%= f.error_messages %> <p><b>Nome</b><br /><%= f.text_field :nome %></p> <p><b>numero sale</b><br /><%= f.text_field :numerosale %></p> <p><b>Localita'</b><br /><%= f.text_field :localita %></p> <p><%= f.submit "create" %> </p><% end %>

Page 11: Lezione Guidata Ruby On Rails Insert

Modificare il metodo create del controllore multisalas

1. Modificare il codice al seguente modo: def create

@multisala=Multisala.new(params[:multisala])

if @multisala.save

redirect_to :action=>'new’

else

render :template=>"multisalas/new“

end

end

Page 12: Lezione Guidata Ruby On Rails Insert

Verificare gli errori dei validatori

1. Lanciare il server (ruby script/server)

2. Nella form di input non inserire nessun dato e premere il bottone create. Verificare gli errori di validazione

3. Inserire tutti i dati, ma nel ‘numero sale’ mettere una stringa anziché un numero. Verificare l’errore di numericità

4. Infine inserire tutti i dati in maniera corretta e verificare che non ci sia più nessun errore

Page 13: Lezione Guidata Ruby On Rails Insert

Continua con l’azione ‘show’