haml - 表格单元格中的erb过滤器将文本推到外面(在标记中)

时间:2012-12-05 23:01:02

标签: ruby-on-rails haml

Haml用erb过滤器错误地重新发送我的html。有任何想法如何让它生成正确的标记?

此haml标记生成以下HTML

HAML:

%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>

宝石资讯

haml(3.1.4)

haml-rails(0.3.5)

2 个答案:

答案 0 :(得分:1)

如果你替换它会有所不同:

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

with:

%span
  (%strong= foo.name)

答案 1 :(得分:0)

我知道这是一个古老的问题-我无法复制op所遇到的错误-但是如果其他任何人遇到类似的错误并且需要解决方案,那么haml现在可以提供#surround辅助程序。

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

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

= surround '(', ')' do
  %strong #{foo.name}