2015-06-27 64 views
0

Ruby on Rails中的flash[:notice] = "Message"存在問題。Ruby on rails flash notice error

我想創建登錄錯誤錯誤消息。我的登錄錯誤處理是:

flash[:notice] = "Invalid username/password combination." 
redirect_to(:action => 'login') 

因爲我不知道,alert只是不顯示。我有很多可能的解決方案,但他們都不適合我。我正在使用Safari/Google Chrome瀏覽器。

+2

你在哪裏顯示視圖中的Flash消息?你的觀點是什麼樣子? –

+0

否。在控制器中。此警報存在於if語句中,並且在用戶未被授權時有效。 –

+1

我認爲@ChrisPeters要求您基本向我們展示您如何在HTML中顯示警報。如果他不是,比我:) –

回答

2

你的控制器代碼看起來很好。我懷疑你的問題是而不是你在你的控制器中錯誤地調用flash方法,而是你沒有寫代碼(正確)在你的視圖中顯示Flash。

flash只是持有一條消息,您的意見顯示。您正在設置信息,但您可能無法正確顯示。我不能說,因爲你沒有發佈你的視圖代碼。

例如,如果這個動作提交user/login.html.erb形式,基於控制器代碼的結果,你會希望有一個視圖文件中下面的代碼:

<% flash.each do |key, value| %> 
    <div class="alert"><%= value %></div> 
<% end %> 

此代碼是一個更this article中描述的基本版本。

1

Flash只保存要在視圖中顯示的值。所以我們必須在視圖中使用我們需要的適當的密鑰。

因此,無論何時在此鍵中設置值,它都將顯示在具有此代碼的視圖中。