好的,这很奇怪。
flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'
该消息在重定向后显示,问题是在单击链接或转到我的应用程序中的另一个页面(第一次重定向后)后,它还会再出现一次
最佳答案
对于Flash,首先要区分渲染和redirect_to,因为Flash消息仅在重定向之后才删除。这个你还好。
然后,如果您希望在重定向后的下一个请求中看到消息,请使用flash []。如果希望在当前请求中看到消息,请使用flash.now []。
看看是否有帮助。
如果您确实被卡住,则可以在 View 中将其清除-尽管您正在使用此类解决方法来加载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