HAML如何识别块的结束?

时间:2011-04-24 12:44:07

标签: ruby-on-rails ruby ruby-on-rails-3 plugins 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如何知道在哪里结束“结束”?

对不起我的英语,希望你能理解我在说什么!

2 个答案:

答案 0 :(得分:4)

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

= 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

答案 1 :(得分:2)

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
...

P.S。也缩进2,空格不是制表符。