Validating Your Data
Upcoming SlideShare
Loading in...5
×
 

Validating Your Data

on

  • 1,141 views

controlli formali dell'inserimento dati. Validazione dei dati

controlli formali dell'inserimento dati. Validazione dei dati

Statistics

Views

Total Views
1,141
Slideshare-icon Views on SlideShare
1,140
Embed Views
1

Actions

Likes
1
Downloads
17
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Validating Your Data Validating Your Data Presentation Transcript

    • Validating your data Lezione Ruby On Rails Silvano Natalizi Maggio 2009
    • Prevenire gli errori
    • Che cosa succede se viene digitata una stringa al posto di un numero ?
      • Se in una casella di testo paid_amount, un utente digita $50 anziché 50
      • Il controllore riceve il valore $50 e lo passa al modello
      • Il modello riceve il valore $50, ma c’è un problema. Il valore contiene il simbolo $, e il modello non può convertirlo in un numero. Pertanto nel database viene salvato il numero 0.0
    • Causa del problema
      • Il problema è causato dall’utente che inserisce un dato errato nella form della pagina web
      • Il programmatore deve impedire che ciò accada
      • Per prevenire l’inserimento di dati errati, il programmatore può scrivere del codice opportuno
      • Questo codice deve validare i dati della form prima che questi siano scritti nel database
    • Dove deve essere posto il codice di validazione dati ?
      • Nel controllore ?
      • Nella form ?
      • Nel modello ?
    • Il codice di validazione dati deve essere scritto nel modello
      • Se mettessimo il codice di validazione dei dati nella view o nel controllore, dovremmo duplicare il codice per l’azione “new” e “edit”
      • Se invece la validazione è centralizzata nel modello, non importa quale azione si faccia.
    • validators
      • Ogni sistema usa un qualche tipo di check per controllare l’immissione dei dati
      • Rails usa un insieme di istruzioni chiamate validatori
      • Il validatore è un oggetto Ruby.
      • Il validatore fa il check in dei dati prima che qualcuno provi a salvarli o ad aggiornare il database
      • Essi ci permettono di filtrare i dati e di determinare quali non sono permessi
    • Validatore numerico
      • Per verificare che il valore immesso sia numerico, possiamo usare il validatore validates_numericality_of :
    • Come funziona il validatore ?
      • Ogni qual volta il controllore esegue l’istruzione @client_workout.save oppure @client_workout.update_attributes, il modello esegue il validatore validates_numericality_of.
      • Se, in paid_amount, è stato digitato un dato non numerico il validatore genera un errore. Rails emette il messaggio di errore e non aggiorna il database.
    • Come validiamo i campi obbligatori ?
      • Il validatore che possiamo usare per verificare la presenza di valori nei campi obbligatori è:
      • validates_presence_of :field_name
    • Altri validatori
    • Mostrare la pagina dove si verifica l’errore
      • Quando viene rilevato un errore di validazione dati,
        • occorre visualizzare nuovamente la pagina nella quale si è verificato l’errore di validazione dati
      • La form deve visualizzare tutti gli errori generati dai validatori
      • Pertanto quale è la prima cosa che deve fare un’applicazione ?
    • Il controllore deve sapere se c’è stato un errore
      • Se l’utente immette in una form dei dati errati, l’applicazione deve inviare all’utente nuovamente la medesima form con l’indicazione dei dati errati.
      • Il controllore ha il compito di smistare i dati letti e scritti
      • Il codice del controllore, ad esempio nella creazione di un nuovo record, fa sempre la stessa cosa: cerca di salvarlo nel database, e poi va ad una pagina che mostri i dati.
      • Non fa nulla se il salvataggio dei dati non avviene
      • Il problema è come dire al controllore quando è fallito il salvataggio dei dati !
    • Return value
      • In Ruby, ogni comando restituisce un valore. Se fallisce il comando @ad.save, esso restituisce false.
      • Pertanto il controllore può sapere se il salvataggio è andato a buon fine oppure no, testando questo valore restituito.
    • Il codice da scrivere nel controllore
    • To display error messages
      • L’applicazione deve visualizzare di nuovo la form, e deve anche mostrare quali sono gli errori !
      • L’utente deve sapere che cosa ha sbagliato.
      • Quando il validatore rileva un errore, immagazzina un messaggio di errore nel modello.
      • Ma vogliamo visualizzare questi messaggi di errore nella view!
    • Gli errori vanno visualizzati nella form
    • test
    • Il comando render
      • render :action=>”show”
      • Quando si manda in esecuzione il metodo render con il parametro :action=>”show”, non si esegue il metodo show, ma invece si visualizza la pagina show.html.erb.
      • Se a questa pagina occorrono delle variabili di input, queste devono essere settate opportunamente dentro il metodo che richiama render.
    • Che cosa è un template ?
      • Il template è un file che definisce il contenuto di una risposta della applicazione
      • Ad esempio una view: show.html.erb
      • Quindi il template spesso è una view, con l’informazione fornita dal controllore, usata per generate la risposta al browser
    • Redirect_to
      • Il comando redirect_to :action=>’show’, al contrario di render, fa rieseguire tutta l’azione ‘show’ a partire dal metodo show del controllore.
    • Continua…