未定义的方法'切片'

时间:2017-03-27 16:45:56

标签: ruby-on-rails ruby actiondispatch

在我的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 个答案:

答案 0 :(得分:4)

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

目前还不清楚你在slice尝试完成了什么(因为你没有输出结果,结果输出结果也没有意义)但是如果你想要实现哈希所能达到的slice,你可以简单地创建一个新的哈希:

<% { tutorial: flash[:tutorial] } %>