Parfois, notre gabarit peut être impacté par quelques messages flash. Chaque message prend 3 lignes de codes pour savoir si chaque message n'est pas nul avant d'essayer de l'afficher dans un tag paragraphe.
<html>
<!-- (head snipped) -->
<body>
<h1>ASCIIcasts</h1>
<% unless flash[:notice].nil? %>
<div id="notice"><%= flash[:notice] %></div>
<% end %>
<% unless flash[:notice].nil? %>
<div id="notice"><%= flash[:notice] %></div>
<% end %>
<%= yield %>
</body>
</html>
Messages flash
dans le fichier gabarit.
Il y a une façon plus simple de faire ceci qui consiste à parcourir les messages flash et de les afficher de cette façon :
<% flash.each do |key,msg| %>
<%= content_tag :p, msg, :id => key %>
<% end %>
content_tag
prend trois paramètres : le premier est le nom de l'élément, le second est le contenu qui apparait entre les éléments et le troisème est un hash d'options qui devient les attributs de l'éléments. Le code précédent est beaucoup plus court que l'original et a l'avantage que n'importe quel message flash que nous ajouterons sera automatiquement affiché.