Lezione Guidata Ruby On Rails Insert
-
Upload
silvano-natalizi-itis-alessandro-volta-perugia -
Category
Education
-
view
931 -
download
0
description
Transcript of Lezione Guidata Ruby On Rails Insert
Lezione guidata Ruby on Rails
1) action :new
Prof. Silvano Natalizi, maggio 2009
Esercitazione VA Liceo Tecnico
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
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
Scrivere la form new.html.erb
1. Scrivere la form new.html.erb e salvarla nella cartella view/cinemas
1.
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 !
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
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
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
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
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 %>
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
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
Continua con l’azione ‘show’