zrl*_*3dx 4 haml ruby-on-rails string-interpolation
我在erb中有以下代码可以正常工作:
<div id='flash_<%= flash.keys.first.to_s %>'>
<%=h flash[flash.keys.first] %>
</div>
Run Code Online (Sandbox Code Playgroud)
我想把它转换为haml:
#flash_#{flash.keys.first.to_s}
=h flash[flash.keys.first]
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Illegal element: classes and ids must have values.
Run Code Online (Sandbox Code Playgroud)
这是奇怪的,因为有IS值,'flash_'部分始终存在,即使我这样做,我也会得到错误:
#flash_#{nil.object_id}
Run Code Online (Sandbox Code Playgroud)
显然我的Ruby插值在haml中有些不对劲,但我无法做到.根据文档http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_# {}用于内插Ruby,它适用于这种情况:
#flash_
#{flash.keys.first.to_s}
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的.
总之,我想得到以下输出:
<div id="flash_foo"> blahblah </div>
Run Code Online (Sandbox Code Playgroud)
但它也可以:
<div id="flash_"></div>
Run Code Online (Sandbox Code Playgroud)
如何用haml获得?
Reu*_*aby 11
%div{ :id => "flash_#{flash.keys.first}" }
=h flash[flash.keys.first]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4056 次 |
| 最近记录: |