2013-06-23 25 views
6

Haml görünümlerimden birinde bir If/Else ifadesine bazı (işlenmemiş) yorumlar koymaya çalışıyorum, ancak sorunlara neden oluyor gibi görünüyor.Ekstra Ruby çizgileri içeride Haml'da ifadeler sorun yaratıyor mu?

Aşağıdaki kod var istiyorum: Ne yazık

- # Stuff like ______ activates the if statement 
- if @condition 
    (Some code) 

- # Stuff like _____ activates the else statement 
- else 
    (Some other code) 

, Raylar bana bu hatayı atar:

Got "else" with no preceding "if" 

Ben başka 'yorumunu kaldırırsanız, yani

- # Stuff like ______ activates the if statement 
- if @condition 
    (Some code) 

- else 
    (Some other code) 

Her şey istenen şekilde çalışır. Sorun, yorumun kendisi değil. Oluşturulmasını sağlamak için Ruby'nin gerçek satırını (tire dahil) silmeliyim.

- # Stuff like ______ activates the if statement 
- if @condition 
    (Some code) 

- 
- else 
    (Some other code) 

aynı hatayı alıyorum: Ben sadece böyle bir tire öncesinde bir boş satır, bıraksanız bile olduğunu. Potansiyel olarak ilgili diğer detaylar: Daha sonra, eğer/else ifadesiyle (içeride değil) aynı girinti seviyesinde daha fazla kod vardır ve her şey bir formun içine yerleştirilir. Birisi bana neyin yanlış gittiğini açıklayabilir mi? Çok teşekkürler!

P.S. Bu benim ilk SO sorgusudur, bu yüzden uygunsuz bir şekilde sunsaydım, lütfen bana bildirin.

+0

ne olur? –

cevap

9

HAML reference says: Yani

Ruby blocks, like XHTML tags, don’t need to be explicitly closed in Haml. Rather, they’re automatically closed, based on indentation. A block begins whenever the indentation is increased after a Ruby evaluation command. It ends when the indentation decreases (as long as it’s not an else clause or something similar).

, sen girinti azaltmak ve bu çizgi bir else fıkra (veya benzeri, örneğin elsif), if bitirir değilken - Bir end dolaylı eklenir. Sonra tabii ki else hat else deyiminden önce ya da sonra,

Çözümün yorumunu girinti etmektir geçersiz: Başka önce yorumunu derin girinti çalışırsanız

- if @condition 
    - # Stuff like ______ activates the if statement 
    (Some code) 

- else 
    - # Stuff like _____ activates the else statement 
    (Some other code) 
+0

Bu mükemmel bir anlam ifade ediyor. Çok teşekkürler! –

+0

harika açıklamalar ... sadece seviyorum :)) –