Ich versuche, eine Warnmeldung Pop-up zu haben, wenn der Benutzer nicht mit den falschen Anmeldeinformationen anmelden kann. Die Anmeldung wird nicht durchgeführt, aber die Warnung wird nicht angezeigt.Flash.alert funktioniert nicht in Ruby on Rails
Dies ist der Code, den ich in meiner Sicht haben:
<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" %>
Da ist in meinem Controller ich habe:
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
Ich habe auch versucht flash[:alert] = "Invalid name/password combination"
zu tun, aber das funktioniert nicht als Gut. Jede Hilfe wird geschätzt.
So funktioniert das! Aber es dauert 2 fehlgeschlagene Logins, damit die Benachrichtigung angezeigt wird, und manchmal ist der Benachrichtigungstext vorhanden, wenn die Seite geladen wird. Irgendwelche Korrekturen daran? – Frank
Platzieren Sie die 'flash [: notice]' vor Ihrer 'render' Anweisung – Shannon
Vielen Dank für Ihre Hilfe! – Frank