0

Haml 使用 erb 过滤器错误地渲染了我的 html。任何想法如何让它生成正确的标记?

此haml 标记生成以下HTML

哈姆勒:

%table
  %tbody
    -items.each do |foo|
      %tr
        %td       
          %div
            :erb
              (<strong><%= foo.name %></strong>)

呈现的 HTML:

<strong>bar</strong>
<table>
<tbody>
<tr><td><div></div></td></tr>
</tbody>
</table>

宝石信息

哈姆 (3.1.4)

haml-rails (0.3.5)

4

2 回答 2

1

如果您替换它是否会有所不同:

:erb
  (<strong><%= foo.name %></strong>)

和:

%span
  (%strong= foo.name)
于 2012-12-05T23:08:39.720 回答
0

我知道这是一个老问题——我无法复制操作所遇到的错误——但如果其他人遇到类似错误并需要解决方案,haml 现在提供了一个帮助程序#surround。

http://haml.info/docs/yardoc/Haml/Helpers.html#surround-instance_method

所以对于这个问题,它看起来像:

= surround '(', ')' do
  %strong #{foo.name}
于 2019-05-04T03:16:53.743 回答