2010-12-09 11 views
21

Gibt es eine bessere Möglichkeit, das Folgende in HAML zu konvertieren?Name der dynamischen Klasse in HAML

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

Beste was ich tun kann ist:

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

Aber es scheint umständlich. Und .flash#{ key}= value scheint nicht richtig zu sein?!?

Antwort

18

Wenn Sie etwas suchen, jeder-so-etwas knapper, können Sie dies in haml jetzt tun:

- flash.each do |key, value| 
    .flash(class=key)= value 
12

Ein wenig besser:

- flash.each do |key, value| 
    .flash{:class => key}= value 
+0

Nope .. funktioniert nicht sein. gibt mir: '

Resource was successfully created.
' – Meltemi

+1

Hoppla, tut mir leid. Ich vergesse, Zitate um "Flash" zu setzen. Bitte sehen Sie die aktualisierte Antwort. Ich denke, es wird jetzt funktionieren. – bowsersenior

+0

tatsächlich tut es! Vielen Dank. Halten Sie das für einen weiteren Tag offen, um zu sehen, ob jemand einen prägnanteren Weg finden kann. meistens Kuriositäten, wenn es einen Weg gibt, dies mit dem * angenommenen * 'div'-Tag zu erreichen, den HAML so gerne ausnutzt ... – Meltemi

6

eine Variation über das Thema Hinzufügen :

diese erb

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

konnte

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

ähnlich wie How do I make dynamic ids in Haml?