Haml: как генерировать динамический идентификатор


У меня есть следующий код в 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, но я не могу сделать это правильно. Согласно документации 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?

1   3   2013-04-28 19:32:13

1 ответ:

%div{ :id => "flash_#{flash.keys.first}" }    
  =h flash[flash.keys.first]