# Problema ciclo view con haml

**URL:** <https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912>\
**Category:** IT\
**Created:** [January 19, 2012, 10:04am UTC](https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912 "2012-01-19T10:04:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [January 19, 2012, 10:04am UTC](https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912/1 "2012-01-19T10:04:08Z")

</div>

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

1. sintassi dei cicli ruby
2. utilizzo di haml

che cosa sbaglio? Potrei fare di meglio?

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [January 19, 2012, 10:10am UTC](https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912/2 "2012-01-19T10:10:58Z")

</div>

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

- (1…10).each do

Luca

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [January 19, 2012, 10:18am UTC](https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912/3 "2012-01-19T10:18:24Z")

</div>

Il 19 gennaio 2012 10:03, Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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 🙂

Andrea

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [January 19, 2012, 10:36am UTC](https://www.ruby-forum.com/t/problema-ciclo-view-con-haml/215912/4 "2012-01-19T10:36:25Z")

</div>

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. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
ha  
scritto:
