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
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: