Articoli recenti
- Perché Google Wave non ha funzionato
- Nuovi iPods, iPhone 5, Bumper in nuova versione e iPad mini: da crederci?
- GoogleCar in vacanza Italia
- Google Chrome: 9 comandi nascosti
- iPad per gli studenti universitari: le prove generali questo autunno
- Tre conquiste dell’umanità di cui non godremo
- A Google Java e C++ vanno stretti
- Rails 3.0: Release candidate
- Android 3.0 fa la sua apparizione non ufficiale
- iPhone 4: venerdì disponibile in altri 17 paesi (Italia compresa)
I più letti
Ruby on Rails Tutorial: I Modelli
Nella prima parte del tutorial sono stati creati il progetto base e i database da utilizzare per il progetto in Ruby on Rails. I database così come i progetti sono per adesso vuoti.
Seppur vuoto il progetto è già funzionante: dal prompt dei comandi che abbiamo lasciato aperto nella cartella principale del progetto, digitiamo
ruby script/servere premiamo invio.$ ruby script/server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-08-10 19:12:43] INFO WEBrick 1.3.1
[2007-08-10 19:12:43] INFO ruby 1.8.4 (2005-12-24) [i686-darwin8.6.2]
[2007-08-10 19:12:43] INFO WEBrick::HTTPServer#start: pid=376 port=3000
Puntando il proprio browser verso
http://localhost:3000dovrebbe apparire il messaggio di benvenuto che ci informa che lo startup è andato a buon fine.A cosa servono i modelli in Ruby on Rails
Ruby on Rails segue il paradigma MVC; in breve, considera l’applicazione divisa in tre parti distinte:
Creare il primo modello
Alla nostra applicazione serve un modello per poter salvare e recuperare i link suggeriti dagli utenti del sito e per registrare i voti. Il nostro modello si chiamerà
LinkUrl; dal prompt dei comandi digitiamoControl+Cper fermare l’esecuzione di Webrick e digitiamo:$ ruby script/generate model LinkUrl
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/link_url.rb
create test/unit/link_url_test.rb
create test/fixtures/link_urls.yml
create db/migrate
create db/migrate/001_create_link_urls.rb
Così come era successo alla creazione del progetto, questo comando crea automaticamente una serie di file in diverse cartelle per assisterci alla creazione del modello.
Tabella corrispondente al modello Ruby on Rails
Il primo file cha andiamo a modificare è
db/migrate/001_create_link_urls.rb; in questo file andiamo a definire la struttura della tabella che conterrà le informazioni del modelloLinkUrl. Accedendo al file notiamo la presenza di due metodi vuoti:self.upeself.down.All’interno del metodo self.up aggiungiamo le istruzioni per la creazione della tabella.
L’istruzione
t.column :created_at, :datetimerichiede la creazione di una colonna in cui saranno inserite automaticamente la data e l’ora di creazione dell’entry;created_atè infatti un “magic field name”, per cui il relativo campo viene compilato automaticamente da ruby on rails in fase di salvataggio della riga sul database.Le seguenti tre righe richiedono la creazione di attributi di testo di 255 caratteri al massimo (per intenderci si tratta dei VARCHAR SQL);
:null => falseindica che l’attributo non potrà essere nullo.L’ultima riga richiede infine la creazione di un attributo di tipo intero, anche questo non potrà essere nullo, e con valore di default ‘zero’.
Ora dal prompt dei comandi digitiamo
rake db:migrateper riversare quanto abbiamo scritto sul database.Ora il nostro database possiede la tabella link_urls creata seguando le istruzioni che abbiamo inserito:
Insieme alla tabella
link_urlsè stata creata una seconda tabella,schema_info.La tabella
schema_infocontiene la versione del database secondo la convenzione del migrate; la versione attuale è la 1, dal momento che per la costruzione del database è stato applicato un solo file di migrate,db/migrate/001_create_link_urls.rb.L’istruzione rake:db migrate permette di cambiare la versione del database in uso; ad esempio se digitiamo rake db:migrate VERSION=0 il database sarà ripristinato alla versione iniziale, e sarà quindi cancellata la tabella creata.
Per ogni file di migrazione è importante definire sia il metodo self.up che il metodo self.down; il metodo self.up viene utilizzato per raggiungere la versione del database descritta dal file, mentre il metodo self.down indica come ritornare alla versione precedente.