我試圖在用戶無法使用不正確的憑據登錄時彈出警報。登錄不會通過,但警報不會顯示。Flash.alert無法在Ruby on Rails中工作
這是我在我的視圖代碼:
<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"
但是,這並不爲工作好。任何幫助表示讚賞。
所以這個作品!但是,通知顯示時需要2次登錄失敗,有時當頁面初始加載時,通知文本仍在那裏。任何修復? – Frank
將'flash [:notice]'放在'render'語句之前 – Shannon
感謝您的幫助! – Frank