-1

在我的 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>

有谁知道我可能会错过什么或如何让它发挥作用?

4

1 回答 1

5

flash不是哈希。它是一个行为(部分)像哈希的对象。没有任何slice方法。

目前尚不清楚您要在slice这里完成什么(因为您没有输出结果,并且无论如何输出结果都没有意义)但是如果您正在尝试实现sliceHash 将实现的目标,您可以只需创建一个新的哈希:

<% { tutorial: flash[:tutorial] } %>
于 2017-03-27T16:50:45.660 回答