2017-02-19 11 views
1

ユーザが誤った認証情報でログインに失敗したときに警告ポップアップを表示しようとしています。ログインは完了しませんが、アラートは表示されません。Ruby on RailsでFlash.alertが動作しない

これは私が私の見解を持っているコードです:

<h2>The Maintenance Functions are restricted to authorized users only. Please login below.</h2> 
<%= form_tag(dirlogin_pageout_path, :controller => "dirlogin", :action => "pageout", :method => "post") %> 
<p> 
    <label for="name">User ID:</label><br> 
    <%= text_field_tag :userid, params[:userid] %> 
</p> 

<p> 
    <label for="password">Password:</label><br> 
    <%= password_field_tag :password, params[:password] %> 
</p> 

<%= submit_tag "login" %> 

は、その後、私は持っている私のコントローラで:

class DirloginController < ApplicationController 
    def pagein 
    end 

    def pageout 
    user = User.find_by_userid(params[:userid]) 
    if user and user.authenticate(params[:password]) 
     redirect_to maintenance_maintenancenav_path 
    else 
    render 'pagein' 
    flash.alert = "Invalid name/password combination" 
    end 
end 
end 

私もflash[:alert] = "Invalid name/password combination"をやってみましたが、それはのように動作しません。よくどんな助けもありがとうございます。

答えて

1

代わりにflash[:notice]を使用できます。

flash[:notice] = "Invalid name/password combination" 

そして、あなたのビューであなたがそれを表示することができます

<%= flash[:notice] %> 
+0

だから、この作品!ただし、通知が表示されるまでに2回のログインに失敗し、ページが最初に読み込まれたときに通知テキストが表示されることがあります。そのすべての修正? – Frank

+1

'render [statement]の前に' flash [:notice] 'を置いてください – Shannon

+0

ありがとうございました! – Frank

-1

なぜ末端に二重の端があるのですか?

あなたはこれを試してください:

flash.alert = "Invalid name/password combination" 
render 'pagein' 
+0

これらの目的は必要です。私はそれを試して、それは動作しません – Frank

関連する問題