2012-08-24 65 views
0

在用戶單擊登錄按鈕進行登錄的登錄表單中,登錄表單通過會話資源調用創建操作。RoR的Flash功能無效

這裏是動作:

def create 
    user = User.find_by_email(params[:session][:email].downcase) 
    if user && user.authenticate(params[:session][:password]) 
    #Sign the user in and redirect to user's main page 
    else 
    flash[:error] = "Invalid email/password combination" 
    render 'new' 
    end 
end  

雖然閃光[:錯誤]不工作。

我試着在靜態頁面控制器中放置一個'flash [:notice]',以便在主頁重定向到時閃爍通知,儘管這也不起作用。

我的測試套裝給了我這個錯誤

Failure/Error: it { should have_selector('div.alert.alert-error', text: 'Invalid') } 
    expected css "div.alert.alert-error" with text "Invalid" to return something 

這是我的CSS問題?

感謝您的幫助!

+4

你添加代碼,以顯示在佈局閃光或查看模板? –

+0

謝謝。我沒有意識到我沒有把它包含在application.html.erb –

+0

Chris中,你會介意複製並粘貼你寫的答案,所以我可以給你信任嗎? –

回答

2

你加代碼,以顯示您的佈局或視圖模板閃光?

看起來也許你正在使用的引導,所以你可以做一些類似的在佈局文件(views/layouts/application.html.erb或其他佈局):

<% flash.each do |key, message| %> 
    <div id="flash-<%= key %>" class="alert alert-<%= key %> fade in"> 
    <button class="close" data-dismiss="alert">&times;</button> 
    <%= message %> 
    </div> 
<% end %> 
2

您可能必須使用flash.now [:error],因爲您正在渲染視圖。

flash.now[:error] = "Invalid email/password combination" 

http://apidock.com/rails/ActionDispatch/Flash/FlashHash/now

+0

感謝您的幫助。事實證明,問題在於我沒有包含代碼來將錯誤消息實際輸入到視圖模板中。 –