【问题标题】:Haml: how to generate dynamic idHaml:如何生成动态 id
【发布时间】:2013-04-22 06:46:30
【问题描述】:

我在 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.

这很奇怪,因为存在 IS 值,'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获得?

【问题讨论】:

标签: ruby-on-rails haml string-interpolation


【解决方案1】:
%div{ :id => "flash_#{flash.keys.first}" }    
  =h flash[flash.keys.first]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多