登录后,如果我转到/ users / edit页面,我会收到flash消息 “您已成功登录”。
在注册控制器中我试过:
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消息。我在我的布局文件中以及需要的控制器中尝试了flash.now和flash.discard。但它没有帮助我。
答案 0 :(得分:0)
尝试以下代码。它会检查flash消息是否确实存在,然后抓取成功的消息和错误消息。
<% 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 %>