2010-10-19 16 views
9

Kendimi HTML etiketlerinden rahatsız ettiğim için projemi HAML'a dönüştürmeye başladım çünkü bu çok daha iyi yapılandırılmış. Yüklemenin bana yardım etmesi için html2haml aracını sağladığı için memnunum. sözdizimsel doğru olma ederkenHaml kısmi şablon işleme konusunda eksik anahtar kelime_kendi

, dosyası işlenirken oldukça alamadım bana garip hata veriyor:

/stories/_story.html.haml:28: syntax error, unexpected keyword_ensure, expecting keyword_end 
...:Util.html_safe(_erbout);ensure;@haml_buffer = @haml_buffer.... 
...        ^
/stories/_story.html.haml:31: syntax error, unexpected $end, expecting keyword_end 

Benim haml kaynağı yalnızca 27 satırları vardır ve bu çok yeni olduğum için, ben

%h1= story.title 
%center 
    %i 
    by #{link_to story.user.name, story.user} 
#story-short= story.short_desc 
- if logged_in? and @current_user.id == story.user_id 
    .list-buttons 
    %center 
     = link_to 'Edit', edit_story_path(story) 
     | 
     \#{link_to 'Delete', story, :method => 'delete', :confirm => 'Are you really sure?'} 
#story-body 
    - story.body.split("\n").each do |line| 
    - if line.strip.empty? 
    %hr/ 
    - else 
    %p= line.strip 
#comments 
    %p{:onclick => "$('#comments').find('dl').slideToggle();"} Comments to this story (click to expand) 
    %dl 
    = render :partial => 'comment', :collection => @story.comments 
    - if logged_in? and @current_user.id != story.user_id 
     %dt Leave a comment: 
     %dd 
     = form_for [story, story.comments.build] do |f| 
      .field= f.text_area :body 
      .actions= f.submit "Comment!" 

Yani evet, gerçekten bu yanlış nerede olduğunu bilmek isteriz: burada ... ters giden hiçbir fikri kodudur. Birkaç kez kontrol ettim, belki bir böcek mi?

Zaman ayırdığınız için teşekkür ederiz.

cevap

9

- story.body.split("\n").each do |line| altındaki satırlar girintili değildir. Bu, Haml'in blok için otomatik olarak end eklemeyi bilmediği anlamına gelir;

+1

Belki html2haml'deki bir hata? Yine de teşekkürler! –

+0

Bir html2haml hatasıysa, onu düzeltmek istiyorum. Bu Haml'a dönüştürülen orijinal ERB'yi sağlayabilir misiniz? –

İlgili konular