2013-04-14 27 views
2

我想在Haml的代码返回从红宝石块一个HTML字符串值:如何在Haml中增加Ruby代码的行数?

!= my_helper_method 'some_div_id' do 
    #{ 
      <<-HTML 
       %div 
        %b 
        some data: 
        %span#some_id123 
       %div 
        %b 
        some data2: 
        %span#some_id123224 
      HTML 
     } 

注意#{ ... }之间的字符串可能相当长。此代码将引发“Illegal nesting: nesting within plain text is illegal”。例外。

我尝试了不同的方式,但没有运气。

您的意见?

回答

4

如果我明白你要在这里做什么,你需要使用capture_haml helper method

事情是这样的:

!= my_helper_method 'some_div_id' do 
    - capture_haml do 
    %div 
     %b 
     some data: 
     %span#some_id123 
    %div 
     %b 
     some data2: 
     %span#some_id123224 

capture_haml评估Haml的,但不写生成的HTML输出缓冲区为正常,而是返回它作为一个字符串。

0

结帐haml_tag

这就是我一直在做复杂的助手,推出大量的Haml。将它与haml_concat结合起来用于您的多行Ruby代码。