Я получил следующий код Еврорадио, который работает отлично:Haml: как генерировать динамические ID
<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}
По-видимому, что-то не так с моей интерполяцией Ruby в haml, но я не могу понять это правильно. Согласно документации http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_ # {} используется для интерполирования рубина, и он работает в таком случае:
#flash_
#{flash.keys.first.to_s}
, но это не то, что я хочу.
Подводя итог, я хочу, чтобы получить следующий вывод:
<div id="flash_foo"> blahblah </div>
, но он может быть также:
<div id="flash_"></div>
Как получить, что с Haml?
До вас устраивает Haml использовать [это] (http://html2haml.heroku.com/) преобразователь – prem
@prem: спасибо за эту ссылку, это будет очень полезно для меня. – zrl3dx
Возможный дубликат [Как сделать динамические идентификаторы в Haml?] (Http://stackoverflow.com/questions/2217583/how-do-i-make-dynamic-ids-in-haml) – lulalala