2017-03-27 16 views
-2

私はビューテンプレート内の次のコードを持っている私の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> 

誰もがアイデアを持っていますどのように私は行方不明になるか、またはこれを動作させる方法?

+2

何をしようとしていますか?なぜこのように 'slice 'を使いたいのか分かりません。 – meagar

+0

':tutorial =>" Message "、:notice =>" Message "のようなフラッシュがある場合:success =>" Message "}' ':tutorial'以外のすべてのキーを削除したいと思います。 – Tintin81

+0

そして結果は何ですか?キー 'チュートリアル'とそれに対応する値だけを含むハッシュを取得したら、ビューでそれをどうしますか? – meagar

答えて

4

flashはハッシュではありません。ハッシュのように(部分的に)動作するオブジェクトです。そこにはsliceメソッドがありません。

ここではsliceで達成しようとしていることは不明です(結果が出力されないため、結果が出力されないため)。sliceを達成しようとしている場合ハッシュを達成するには、単に新しいハッシュを作成することができます:

<% { tutorial: flash[:tutorial] } %> 
関連する問題