2

我想从 Haml 代码中的 Ruby 块返回一个 HTML 字符串值:

!= 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

2 回答 2

4

如果我了解您在这里尝试做什么,则需要使用capture_hamlhelper 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 写入输出缓冲区,而是将其作为字符串返回。

于 2013-04-14T15:29:06.113 回答
0

退房haml_tag

这就是我一直使用复杂助手的方式,这些助手会产生很多 Haml。将它与haml_concat您的多行 Ruby 代码结合使用。

于 2013-04-14T15:22:27.533 回答