HAML如何识别块的结束?

= form_for(:subject, :url => {:action => "create"}) do |f| = render :partial => "form", :locals => {:f => f} #form_buttons= submit_tag "Create Subject" 

注意到form_for有一个“do”,所以它需要一个“结束”,但是HAML如何知道在哪里结束“结束”?

抱歉我的英语,希望你能理解我在说什么!

HAML使用缩进来以与Python语言相同的方式分隔块。 也许您应该阅读基础教程或WIKI以获取更多信息。

 = form_for(:subject, :url => {:action => "create"}) do |f| = render :partial => "form", :locals => {:f => f} #you can use f here # you can't use f here 

HAML对块结构使用缩进。
更简单地说,当代码实际上“outdents”时,它是一个隐含的结尾(对于html标签或者ruby do-end块)。 那么在html / ruby​​中会是什么

 ... loop1 loop2 code_for_loop2 end # of loop2 end # of loop1 ... in haml becomes ... loop1 loop2 code for loop2 ... 

ps也缩进2,空格不是制表符。