Метод наилучшей практики отображения флэш-сообщений

Мне интересно, какая лучшая практика для отображения флеш-сообщений. Два основных способа, которые я видел, используют что-то вроде этого кода, сгенерированного эшафотом.

<p id="notice"><%= notice %></p>

или размещения кода в заголовке приложения.

<% if !flash.empty? %>
    <div id="flash"> 
        <% flash.keys.each do |k| %> 
            <div class="<%= k %>">
                <%= flash[k] %>
            </div>  
        <% end %>   
    </div>
<% end %>

Мне кажется, что первый метод повышает гибкость, в то время как последний улучшает читаемость кода и исключает избыточность. Есть ли метод, который предпочитают большинство разработчиков rails? Как вопрос о том, как внедряются строительные леса? Это просто помощник, который обращается к флэш-хешу? Зачем беспокоиться об использовании помощника, когда вы можете напрямую использовать хэш-флэш? Благодаря

Ответ 1

Я делаю так:

<% flash.each do |key, value| %>
  <%= content_tag :div, value, class: "flash #{key}" %>
<% end %>

Ответ 2

Вызов частичного сохранения вашего application.html.erb даже более чистого.

<%= render 'shared/flash_messages' if !flash.empty? %>

.. и в частичном делать что-то вроде того, что сказал @zolter:

<div id="flash_messages">
  <% flash.each do |key, value| %>
    <%= content_tag(:div, value, :class => "flash #{key}") %>
  <% end %>
</div>

Ответ 3

Почему бы не поставить второй метод на вспомогательную функцию, чтобы он не влиял на читаемость кода на макетах?