Problema ciclo view con haml

#content
%h1 Corpo della Home
= (1…10).each do
%p= lorem

lorem una variabile contenente la classica stringa di test :stuck_out_tongue:

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:

  1. sintassi dei cicli ruby
  2. utilizzo di haml

che cosa sbaglio? Potrei fare di meglio?

Replace:
= (1…10).each do
con

  • (1…10).each do

Luca

Il 19 gennaio 2012 10:03, Luca B. [email protected] ha scritto:

#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 :slight_smile:

Andrea

Grazie mille, risposta chiarissima!

Mi ricordavo che c’era una sintassi ruby migliore per fare un ciclo del
genere!

Il giorno 19 gennaio 2012 10:17, Andrea F. [email protected]
ha
scritto: