Динамическое имя класса в HAML - PullRequest
23 голосов
/ 09 декабря 2010

Есть ли лучший способ преобразовать следующее в HAML?

<% flash.each do |key, value| %>
  <div class="flash <%= key %>"><%= value %></div>
<% end %>

Лучшее, что я могу сделать, это:

  - flash.each do |key, value|
    %div{:class => "flash " + key.to_s}= value

Но это кажется неудобным.И .flash#{ key}= value кажется не правым?!?

Ответы [ 3 ]

19 голосов
/ 16 декабря 2010

Если вы ищете что-то немного более резкое, вы можете сделать это прямо сейчас в haml:

- flash.each do |key, value|
  .flash(class=key)= value
12 голосов
/ 09 декабря 2010

Чуть лучше:

 - flash.each do |key, value|
   .flash{:class => key}= value
7 голосов
/ 31 мая 2012

Добавление варианта по теме:

это эрб

<% flash.each do |key, value| %>
  <div class="alert alert-<%= key %>"><%= value %></div>
<% end %> 

может быть

=flash.each do |key, value|
  .alert{:class => "alert-#{key}"}
    =value

аналогично Как создать динамический идентификатор в Haml?

...