Guida Ruby on Rails: un assaggio di dinamicità
Nel corso dello scorso capitolo di questa guida abbiamo creato una semplice applicazione all’interno della quale abbiamo generato il controller, per ora vuoto, denominato say e contenente le due azioni hello e goodbye. Cerchiamo quindi, nel corso di questa lezione, di capire come l’utente possa interagire con l’applicazione stessa.
Navigazione tramite URL
La prima cosa che devi sapere è che gli utenti possono interagire con l’applicazione utilizzando gli URL. Ad esempio, digitando nel browser il percorso localhost:3000/say/goodbye ci apparirà una schermata simile a questa:
che ci ricorda, per l’appunto, che le due azioni create precedentemente nel controller say sono accessibili mediante il loro indirizzo.
Aggiungiamo l’orario
Proviamo ad aggiungere un po’ di movimento a questa pagina così statica: inseriamo l’orario corrente! Per fare ciò dobbiamo agire su due differenti parti dell’applicazione: il controller e la view. Nel controller andremo a definire la variabile d’istanza time nel seguente modo:
class SayController < ApplicationController def hello @time = Time.now end def goodbye end end
Parallelamente, all’interno della view andremo a richiamare la variabile appena definita nel controller per mostrarne il contenuto. Il file che andremo a modificare sarà, come ti aspetterai, nella directory denominata views e, nello specifico, all’interno della cartella che porta lo stesso nome del controller: say. Il file hello.html.erb è quello che cercavamo. Cancelliamo il contenuto e sostituiamolo con il seguente.
<h1>Guida Ruby on Rails:</h1> <p>Benvenuto nella tua prima applicazione RoR!</p> <p><%= @time %></p>
Ti sembrerà una sintassi strana da utilizzare, così come l’estensione .erb associata all’HTML ti apparirà nuova. L’arcano è presto spiegato! L’estensione .erb segnala a Rails di espandere il file con un sistema denominato, per l’appunto, ERB e di processare il contenuto inserito tra <%= e %> come fosse codice Ruby. Tutto il resto verrà normalmente interpretato come codice HTML.
Colleghiamo le pagine
Con lo stesso metodo proviamo a rendere più interessante la nostra applicazione collegando le due pagine, e quindi le due azioni, hello e goodbye. All’interno della view di hello.html.erb, inseriamo questa linea di codice:
</p><%= link_to “arrivederci”, say_goodbye_path %></p>
la quale produrrà il seguente risultato.
Adesso prendiamoci un momento per analizzare il codice appena inserito.
link_to è un metodo che richiama il valore precompilato say_goodbye_path il quale contiene, per l’appunto, il percorso completo dell’azione goodbye all’interno del controller say e ne richiama la view; in breve, rimanda all’URL say/goodbye. A riprova di ciò, ci basterà visualizzare il codice HTML della view di say/hello per scoprire che l’output è:
<p><a href="/say/goodbye">Arrivederci</a></p>
Bene, ora che abbiamo capito il meccanismo, proviamo a riprodurre la stessa procedura per collegare la pagina goodbye a quella hello. Apriamo la view say/goodbye.html.erb e, al suo interno, modifichiamo il codice in questo modo.
<h1>Guida Ruby on Rails:</h1> <p>Sei uscito, torna presto a trovarci!</p> <p><%= link_to "Benvenuto", say_hello_path %></p>
Anche in questo caso ci basterà utilizzare il metodo link_to per associare questa pagina con say_hello_path, il percorso dell’azione hello nel controller say.
Formattiamo la data
Proviamo adesso a fare qualche altro esperimento. Non ti sembra che la data sia un po’ bruttina da visualizzare in questo formato? Proviamo allora a darle un aspetto a noi più familiare e, in questo modo, impariamo come concatenare stringhe e come utilizzare alcuni metodi legati a time. Torniamo alla view say/hello.html.erb e modifichiamo la riga:
<p><%= @time %></p>
in
<p><%= @time.strftime(“%H:%M”) %></p>
Aggiungendo il metodo strftime alla variabile @time possiamo settare la formattazione della data al formato %H:%M, ovvero ora:minuti. Il risultato sarà, ad esempio: 10:40. Aggiungiamo, con lo stesso criterio, anche la data.
<p><%= @time.strftime(“%H:%M”) + @time.strftime(“%d-%m-%Y”) %></p>
Come puoi osservare, l’operatore “+” collega le due stringhe, mentre il metodo strftime riporta la data nel formato %d-%m-%Y ovvero giorno e mese a due cifre seguito dall’anno a quattro cifre. A questo indirizzo sono elencati tutti i possibili valori di formattazione della data. Infine aggiungiamo due stringhe di testo per dare maggior senso e scorrevolezza alla lettura:
<p><%= “Sono le” + @time.strftime(“%H:%M”) + “del” + @time.strftime(“%d-%m-%Y”) %></p>
Conclusioni
Oggi abbiamo imparato, nella pratica, come dichiarare variabili, come interagiscono controller e view, e come utilizzare i metodi link_to e strftime. Nel corso delle prossime lezioni approfondiremo quello che oggi abbiamo realizzato spiegandone il funzionamento teorico, ovvero specificheremo l’interazione tra le varie componenti di un’applicazione Rails all’interno del design pattern MVC e, passo passo, impareremo la sintassi Ruby.
Come ultima cosa, ti ricordo che puoi effettuare il download del codice completo relativo a questa lezione da questo link.
GUIDA RUBY ON RAILS: INDICE LEZIONI
1) Introduzione
2) L’ambiente di lavoro e la nostra prima app
3) Un assaggio di dinamicità
4) Architettura di un’applicazione
5) Il linguaggio Ruby – Parte 1
6) Il linguaggio Ruby – Parte 2
7) Creiamo c-Bookcase
8) Convalida e test
9) Ruby on Rails: page layout
10) Guida Ruby on Rails: creiamo il carrello
3 commenti
Trackback e pingback
[…] GUIDA RUBY ON RAILS: INDICE LEZIONI 1) Introduzione 2) L’ambiente di lavoro e la nostra prima app 3) Un…
[…] GUIDA RUBY ON RAILS: INDICE LEZIONI 1) Introduzione 2) L’ambiente di lavoro e la nostra prima app 3) Un…