未定义的方法“切片”

Tin*_*n81 -1 ruby ruby-on-rails 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 %>
Run Code Online (Sandbox Code Playgroud)

但是它会抛出一个错误:

Undefined method 'slice' for #<ActionDispatch::Flash::FlashHash:0x0818>
Run Code Online (Sandbox Code Playgroud)

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

mea*_*gar 5

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

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

<% { tutorial: flash[:tutorial] } %>
Run Code Online (Sandbox Code Playgroud)