2011-11-16 65 views
4

好吧,這是一個奇怪的。使用redirect_to時顯示兩次的Flash消息(Rails 2)

flash[:success] = 'some success message' 
redirect_to :controller => 'media', :action => 'index' 

正在顯示的信息重定向後,事情是它也出現一次點擊鏈接或轉到其他網頁在我的應用(第一重定向後)

回答

7

對於後閃,首先區分渲染和redirect_to,因爲閃光消息僅在重定向後被刪除。這你確定。

然後,如果您想在重定向後的下一個請求中看到消息,請使用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 
0

而且,你必須支付注意不要在你的view/layouts/application.html.erb文件中包含flash消息。它可能會發生:)