我在不应该出现通知时遇到问题。当我单击应用程序中的链接进行登录时,它会闪烁“无效的用户名/密码组合”通知,即使我没有输入任何内容。我明白为什么我会收到该消息 - 这是因为当我单击链接时,我没有输入匹配的用户名和密码,所以会触发错误。但我不确定如何解决这个问题。我希望在用户输入错误组合时出现错误,而不是在页面首次出现时出现。
在代码中,“用户”是指管理员,客户是客户。我为这两种类型的人使用相同的登录页面。
另外,我真正想要的是,当用户确实输入了错误的组合时,他们的电子邮件地址将保留在该字段中,这样他们就不必再次输入。我该怎么做呢?
谢谢!!
这是更新的控制器代码:
class SessionsController < ApplicationController
skip_before_filter :authorize
def new
end
def create
user = User.find_by_email(params[:email])
customer = Customer.find_by_email(params[:email])
if user and user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to admin_url
elsif customer and customer.authenticate(params[:password])
session[:customer_id] = customer.id
redirect_to customer_path(session[:customer_id])
else
render :new, notice: "Invalid email/password combination"
end
end
def destroy
session[:user_id] = nil
session[:customer_id] = nil
redirect_to store_url, notice: "Logged out"
end
end