2013-04-14 64 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代碼。