我在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获得它?
答案 0 :(得分:11)
%div{ :id => "flash_#{flash.keys.first}" }
=h flash[flash.keys.first]