Rails 3 - уведомление и вспышка ошибки не могут быть отрисованы частично

Я пытался очистить 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 () существуют различные способы передачи переменных в партиал, но мне не удалось это выяснить. Есть идеи?

5
задан Don Leatham 5 November 2011 в 21:25
поделиться