Я пытался очистить application.html.erb
, путем перемещения частей макета на части. У меня был следующий код для обработки флеш-ошибок / уведомлений:
<div id="flash">
<% if flash[:notice] %>
<h3 class="info_box"><%= flash[:notice] %></h3>
<% end %>
<% if flash[:error] %>
<h3 class="error_box"><%= flash[:error] %></h3>
<% end %>
</div>
Этот код отлично работал в application.html.erb
, пока я не переместил его в файл с именем « _flash.html.erb
"и заменил его следующим:
<%= render 'layouts/flash' %>
В партиале хэш flash-памяти не был распознанным объектом и вызывает сообщение" У вас есть нулевой объект, когда вы этого не ожидали! " ошибка.
Я вернул код в application.html.erb, и все в порядке. Но я не смог найти ответ на доступ к хешу флеш-памяти в партиале. Глядя на руководство Rails по «Рендерингу и макетам», я вижу, что для render ()
существуют различные способы передачи переменных в партиал, но мне не удалось это выяснить. Есть идеи?