通知が表示されるべきではないときに表示されるという問題があります。ログインするためにアプリ内のリンクをクリックすると、何も入力していないにもかかわらず、「無効なユーザー名とパスワードの組み合わせ」という通知が表示されます。メッセージが表示される理由は理解できます。リンクをクリックしたためです。 、一致するユーザー名とパスワードを入力していないため、エラーが発生します。しかし、これを修正する方法がわかりません。ユーザーが間違ったコンボを入力したときにエラーが表示されますが、ページが最初に表示されたときは表示されません。
コードでは、「ユーザー」は管理者を指し、顧客は顧客です。どちらのタイプの人にも同じログイン ページを使用しています。
また、私が本当に望んでいるのは、ユーザーが間違った組み合わせを入力した場合、電子メール アドレスがフィールドに残るので、再度入力する必要がないことです。どうすればこれを行うことができますか?
ありがとう!!
更新されたコントローラー コードは次のとおりです。
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