Mostrando el contenido del flash en Rails de forma compacta

No me acuerdo de dónde lo copié la primera vez, pero desde entonces ha ido pasando siempre de un proyecto a otro, porque es la forma que más me gusta de hacerlo.

En app/views/layouts/application.html.erb:

<% flash.each do |key, msg| -%>
  <%= content_tag :div, msg, :class => key, :id => 'flash' %>
<% end -%>

Esto crea un div con id flash y class la clave del hash, que normalmente será error o notice.

Luego en la css pones los estilos correspondientes y ya queda mucho mejor.


   #flash {
    padding: 0.5em;
    font-weight: bold;
   }
   .notice {
     background-color: #fff;
     color: #333;
     border: 1px solid green; 
   }
   .error {
     background-color: #ff6666;
     color: #333;
     border: 1px solid red; 
   }