【问题标题】:How HAML can recognize the end of the block?HAML 如何识别块的结尾?
【发布时间】:2011-04-24 12:44:06
【问题描述】:
= form_for(:subject, :url => {:action => "create"}) do |f|
    = render :partial => "form", :locals => {:f => f}
    #form_buttons= submit_tag "Create Subject"

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

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 plugins haml


    【解决方案1】:

    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
    

    【讨论】:

    • 以前从未学过 Python,但我认为这是编写 HAML 而不是使用 ERB 的绝佳方式。
    • HAML 有 Python 一样的缩进功能真是太好了
    • 我更新了我的答案。您可能是指如何编写 HTML 而不是使用 ERB。 :)
    • 我找到了,就像你说的那样
    • Ruby 块,就像 XHTML 标签一样,不需要在 Haml 中显式关闭。相反,它们会根据缩进自动关闭。
    【解决方案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
    ...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2012-09-05
      • 1970-01-01
      相关资源
      最近更新 更多