2011-12-20 99 views
4

在我看來,我有:導軌閃爍,警告,警告和錯誤未顯示;只注意到所示

<% flash.now[:error] = "ERROR FLASH" %> 
<% flash.now[:notice] = "NOTICE FLASH" %> 
<% flash.now[:warning] = "WARNING FLASH" %> 

當頁面被渲染,只出現在通知FLASH藍色信息框。其他兩個將不會顯示。同樣的事情發生與等號:

<%= flash.now[:error] = "ERROR FLASH" %> 
<%= flash.now[:notice] = "NOTICE FLASH" %> 
<%= flash.now[:warning] = "WARNING FLASH" %> 

有沒有在我的Rails應用程序,設置警告或錯誤閃爍不會出現設置?

回答

3

Rails對flash的內容並沒有什麼魔力,除了當它應該是空的時候。

這完全取決於你,如果你想顯示錯誤,通知再警告你必須把

<%= flash[:error] %> 

某處在您的視圖模板或佈局採取閃光燈,即對內容進行適當的行動其中,用戶將能夠看到它(再次爲:警告,:注意而且希望以此方式顯示任何其他閃存鍵)

+0

感謝您的回覆。但我也嘗試過,它不適用於:警告和:錯誤,但僅限於:注意。 – RoundOutTooSoon 2011-12-20 19:25:05

+0

然後你需要展示更多你正在做的事情:什麼是設置閃光燈(以及在哪裏),在哪裏顯示等。 – 2011-12-20 19:28:31

+0

嗨弗雷德裏克,謝謝你回到我身邊。我正在使用flash.now,以便在不重定向的情況下顯示Flash消息。所以我將消息設置爲與我在粘貼代碼中顯示的視圖相同的視圖。它位於表單的頂部,對查看器可見。 – RoundOutTooSoon 2011-12-20 22:17:32

7

我在用下面的代碼相同的問題:

redirect_to(docs_path, :warning => "I am here!!!") and return if @doc.nil? 

使用':notice'和':alert'而不是':warning'按預期工作。看起來你可以設置:notice和:直接在重定向方法中警告,但不能:error和:warning。

閃光測試[:警告] .nil?在下一個動作給出真實的,但閃光[:notice] .nil?是錯誤的(即:未設置警告閃光,但設置了:通知)。重定向前值,像這樣:

要解決這個問題我設置了閃光燈[警示]:

if @doc.nil? 
    flash[:warning] = "I am here!!!" 
    redirect_to(docs_path) and return 
end 

這不是優雅,但它的工程!

-3

請在您的application.html.erb

<!--[if lt IE 9]> 
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script> 
<![endif]--> 

之前以下幾點:

<%= stylesheet_link_tag "application", :media => "all" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %>