6

我在 erb 中有以下代码可以正常工作:

<div id='flash_<%= flash.keys.first.to_s %>'>
    <%=h    flash[flash.keys.first] %>
</div>

我想把它转换成haml:

#flash_#{flash.keys.first.to_s}
  =h flash[flash.keys.first]

但我收到错误:

Illegal element: classes and ids must have values.

这很奇怪,因为存在价值,'flash_' 部分始终存在,即使我这样做了,我也会收到该错误:

#flash_#{nil.object_id}

显然,我在 haml 中的 Ruby 插值出了点问题,但我做错了。根据文档http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_ #{} 用于插值 Ruby,它适用于这种情况:

#flash_
  #{flash.keys.first.to_s}

但这不是我想要的。

总而言之,我想得到以下输出:

<div id="flash_foo"> blahblah </div>

但也可以是:

<div id="flash_"></div>

如何用haml获得?

4

1 回答 1

12
%div{ :id => "flash_#{flash.keys.first}" }    
  =h flash[flash.keys.first]
于 2013-04-28T15:37:28.463 回答