Ruby on Rails Tutorial: Creazione Progetto e Database

Per questo tutorial realizzeremo in Ruby on Rails un portale web che vuole imitare digg o reddit; cerchiamo di descrivere il comportamento del portale elencandone i casi d’uso:

Creazione del progetto in Ruby on Rails

Iniziamo creando lo scheletro base del progetto con il comando rails voteup; all’esecuzione del comando si vedranno a video una serie di file e cartelle che saranno create automaticamente dal comando rails; il nome e la posizione del file e delle cartelle sono state studiate in modo da rendere facile la navigazione del progetto e da offrire uno standard per tutti gli sviluppatori Ruby on Rails.

Spostiamoci all’interno della cartella voteup appena creata. Tutti i comandi impartiti da riga di comando verranno lanciati da questa cartella; è buona norma lasciare almeno un prompt dei comandi sempre pronto e posizionato della cartella principale del proprio progetto.

Creazione dei database

La convenzione vuole che ogni progetto abbia tre database distinti: uno da utilizzare durante la fase di sviluppo (development), uno da utilizzare per i test automatici (test) e uno per la produzione (production).

In realtà l’intero framework si comporta in modo differente sulla base della modalità di funzionamento prescelta; in modalità development si collegherà al database destinato allo sviluppo e, ad esempio, caricherà il codice che abbiamo scritto ad ogni caricamento di una pagina in modo da rendere subito attive le modifiche al codice; in modalità production invece si collegherà al database di produzione e caricherà i file del progetto una volta sola in modo da aumentare la velocità di esecuzione.

Procediamo con la configurazione del database; per ora ci preoccupiamo solo del database development e test. Accedendo al file config/database.yml per indicare i parametri di connessione al database ci accorgiamo che il file è già compilato con dei dati di esempio; basterà quindi modificare i paramentri che ci interessano, ad esempio il nome utente e la password. Lasciamo intatti i nomi dei database dal momento che sono stati scelti per essere esplicativi (voteup_development è il database di produzione per l’applicazione voteup e così via).


development:
  adapter: mysql
  database: voteup_development
  username: root
  password: password
  host: localhost
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
  adapter: mysql
  database: voteup_test
  username: root
  password: password
  host: localhost

Ora creiamo i due database che andremo ad utilizzare, development e test. Le istruzioni riportate sotto fanno riferimento alla creazione dei database da riga di comando; è possibile creare i database anche con l’interfaccia grafiche che preferite, come quella messa a disposizione da Instant Rails.


$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2 to server version: 5.0.22-standard
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> create database voteup_development;
Query OK, 1 row affected (0.07 sec)
mysql> create database voteup_test;
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
$

Il primo passo in Ruby on Rails

Fino a qui abbiamo visto che: