在我的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>
有没有人知道我可能缺少什么或如何让它发挥作用?
答案 0 :(得分:4)
flash
不是哈希。它是一个行为(部分)像哈希的对象。它上面没有slice
方法。
目前还不清楚你在slice
尝试完成了什么(因为你没有输出结果,结果输出结果也没有意义)但是如果你想要实现哈希所能达到的slice
,你可以简单地创建一个新的哈希:
<% { tutorial: flash[:tutorial] } %>