1

サインインした後、/users/edit ページに移動すると、「サインインに成功しました」というフラッシュ メッセージが表示されます。

登録コントローラーで私が試した:

flash.now  # either this or below one
flash.discard

同じようにレイアウトを試しました

    <% if flash[:alert] || flash[:error] || flash[:notice] %>
       <%= content_tag :div, :class => "alert alert-info info-inside" do -%>
          <button class="close" data-dismiss="alert">×</button>
          <%= flash.now[:alert] if flash[:alert] %>
          <%= flash.now[:error] if flash[:error] %>
          <%= flash.now[:notice] if flash[:notice] %>
       <% end -%>
    <% end %>

また、製品を作成して他のページに移動すると、間違ったフラッシュ メッセージが表示されます。更新すると消えます。

このようなフラッシュ メッセージを回避する方法を教えてください。レイアウトファイルと必要なコントローラーでflash.nowとflash.discardを試しました。しかし、それは私を助けませんでした。

4

1 に答える 1

0

以下のコードを試してください。フラッシュ メッセージが実際に存在するかどうかを確認し、成功メッセージとエラー メッセージのいずれかを取得します。

<% if flash.present? %>
<div id="flash" class="flash">
<% flash.each do |name, msg| %>
  <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
    <%= content_tag :div, msg, id: "flash_#{name}" if msg.is_a?(String) %>
  </div>
<% end %>

于 2013-03-29T13:47:53.337 に答える