Неопределенный метод "ломтик"

В моем приложении Rails 4.2.0 у меня есть следующий код внутри шаблона представления:

<% if flash[:tutorial].present? %>
  <% flash.slice(:tutorial) %>
<% end %>

<% flash.each do |name, msg| %>
  <div class="flash <%= name %>">
    <p> 
      <%= msg %>
    </p>
  </div>
<% end %>

Однако выдает ошибку:

Undefined method 'slice' for #<ActionDispatch::Flash::FlashHash:0x0818>

У кого-нибудь есть идея, чего мне не хватает или как заставить это работать?

1 ответ

Решение

flash не хэш Это объект, который ведет себя (частично) как хэш. Здесь нет slice метод на это.

Неясно, чего вы пытаетесь достичь slice здесь (так как вы не выводите результаты, и результаты в любом случае не имеют смысла выводить), но если вы пытаетесь достичь того, что sliceЕсли хеш достигнут, вы можете просто создать новый хеш:

<% { tutorial: flash[:tutorial] } %>
Другие вопросы по тегам