使用redirect_to时显示两次Flash消息(Rails 2)

men*_*ndi 5 ruby-on-rails ruby-on-rails-2

好的,这是一个奇怪的.

flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'
Run Code Online (Sandbox Code Playgroud)

重定向后显示消息,事情是它再次出现在点击链接或转到我的应用程序中的另一个页面后(第一次重定向后)

Mic*_*ant 7

对于闪存,首先要区分渲染和重定向,因为只有在重定向后才会删除闪存消息.你没事.

然后,如果您希望在重定向后在下一个请求中看到消息,请使用flash [].如果要在当前请求中看到消息,请使用flash.now [].

看看这是否有帮助.

如果你真的陷入困境,你可以在视图中清除它 - 虽然你正在加载技术债务与这样的解决方法黑客 - 但如果现在正在滴答时间:

- 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
Run Code Online (Sandbox Code Playgroud)