Flash.alert Rails Ruby 不工作

Flash.alert not working in 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" 但效果不佳。感谢任何帮助。

您可以使用 flash[:notice]

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

在您看来,您可以使用以下方式显示它:

<%= flash[:notice] %>

为什么最后有双头?

你试试这个:

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