#content
%h1 Corpo della Home
= (1…10).each do
%p= lorem
lorem una variabile contenente la classica stringa di test
funziona alla perfezione (mi stampa 10 volte la stringa lorem), ma alla
fine mi stampa anche questo 1…10 sono ancora un p ignorante nei
seguenti ambiti:
#content
%h1 Corpo della Home
= (1…10).each do
%p= lorem
che cosa sbaglio?
Ciao,
l’errore in questa riga:
= (1…10).each do
il metodo “each” del range 1…10 esegue il blocco una volta per ogni
elemento del range e questo quello che tu vuoi fare, vuoi cio
generare 10 volte un paragrafo. Il metodo “each” del range restituisce
come valore di ritorno il range stesso. Questo valore ti viene
stampato nel html di output perch hai utilizzato il segno “=”.
L’uguale dice a haml di valutare il codice ruby nella riga e di
inserire l’output nel html che genera. Ecco perch ti ritrovi (1…10)
nel tuo html. Devi quindi sostituire “=” con il “-”:
- (1…10).each do
Il trattino dice a haml di valutare il codice ruby (come succede con
l’uguale) ma di non inserirlo nell’output.
Potrei fare di meglio?
Dal momento che il range ti serve solo per eseguire 10 volte il blocco
associato, potresti utilizzare:
= 10.times do
%p= lorem
che, come puoi intuire, esegue 10 volte il blocco associato