好的,这很奇怪。
flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'
重定向后正在显示该消息,在点击链接或转到我的应用中的另一个页面后(第一次重定向后),该消息也会再出现一次
答案 0 :(得分:7)
对于flash,首先要区分render和redirect_to,因为只有在重定向后才会删除flash消息。你没事。
然后,如果您希望在重定向后在下一个请求中看到消息,请使用flash []。如果要在当前请求中看到消息,请使用flash.now []。
看看这是否有帮助。
如果你真的被卡住了,你可以在视图中清除它 - 虽然你正在加载technical debt这样的解决方法黑客 - 但是如果现在正在滴答时间:
- flash.slice(:notice, :message, :error, :success, :warning, :failure).each do |level, value|
- if value.present?
%div{:class => "flash #{h level}"}
= h value
- flash[level] = nil # set to nil in case the flash was set outside of a redirect
答案 1 :(得分:0)
此外,您必须注意不要在view / layouts / application.html.erb文件中包含Flash消息。它可能会发生:)