Oltre a creare la tabella, la logica e le pagine HTML per gestire i dati, con lo scaffolding Rails ha fatto silenziosamente qualcosa in più. La risorsa Bookmark
è accessibile non solo tramite browser ma anche tramite Web Service REST.
Inseriamo qualche altro bookmark utilizzando la pagina http://0.0.0.0:3000/bookmarks/new
e accediamo tramite browser alla pagina http://0.0.0.0:3000/bookmarks.xml
; il risultato è un XML ben formato contenente tutti i bookmark inseriti, pronto per essere interpretato da un'applicazione esterna.
Esempio di XML generato dall'applicazione
<?xml version="1.0" encoding="UTF-8"?> <bookmarks type="array"> <bookmark> <created-at type="datetime">2008-05-17T19:01:36+02:00</created-at> <description>Home page della sezione Ruby. Guide, articoli di approfondimento e risorse su Ruby</description> <id type="integer">1</id> <title>Ruby su HTML.it</title> <updated-at type="datetime">2008-05-17T19:01:36+02:00</updated-at> <url>http://ruby.html.it</url> </bookmark> <bookmark> <created-at type="datetime">2008-05-17T20:37:31+02:00</created-at> <description>Home page della sezione Programmazione. Guide, articoli di approfondimento e risorse su Programmazione</description> <id type="integer">2</id> <title>Programmazione a HTML.it</title> <updated-at type="datetime">2008-05-17T20:37:31+02:00</updated-at> <url>http://programmazione.html.it/</url> </bookmark> </bookmarks>
La differenza tra l'indirizzo utilizzato per visualizzare l'elenco dei bookmark in HTML e quello per ottenere l'XML, sta esclusivamente nell'estensione:
Indirizzo | Risposta |
---|---|
http://0.0.0.0:3000/bookmarks |
la pagina HTML per la visualizzazione della lista dei bookmark |
http://0.0.0.0:3000/bookmarks.xml |
il corrispondente file XML |
Allo stesso modo per il singolo bookmark:
Indirizzo | Risposta |
---|---|
http://0.0.0.0:3000/bookmarks/1 |
la pagina HTML del primo bookmark inserito |
http://0.0.0.0:3000/bookmarks/1.xml |
il corrispondente file XML |
L'applicazione ora rende quindi possibile la gestione di bookmark tanto tramite pagine HTML quanto tramite Web Service REST.
Ricapitolando, con scaffold
abbiamo potuto creare, senza sforzo, il modello i controller e le viste dell'applicazione. I tipi di interazione possibili sono basilari (creazione, modfica, cancellazione, visualizzazione), ma si possono costruire funzionalità più complesse utilizzando come base il codice generato automaticamente.
I comandi fondamentali dello scaffolding sono:
Generazione di una nuova risorsa
ruby script/generate scaffold <risorsa> [nomeCampo:tipo ...]
generazione della tabella necessaria alla gestione della risorsa
rake db:migrate