認証に関する railscast のチュートリアルに従いました。認証する必要がある 2 つのモデルがあるため、セッション作成コードを少し変更しました。
def create
if User.find_by_username(params[:username]) != nil
user = User.find_by_username(params[:username])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_path, notice: "Eingeloged als User"
end
elsif Admin.find_by_username(params[:username]) != nil
admin = Admin.find_by_username(params[:username])
if admin && admin.authenticate(params[:password])
session[:user_id] = admin.id
redirect_to adminpage_index_path, notice: "Eingeloged als Admin"
end
else
flash[:error] = "Benutzername oder Password ist falsch"
render 'new'
end
end
ユーザーとしてログインすると機能し、偽のパスワードを入力すると機能します。しかし、どういうわけか、管理者としてログインしたいときにエラーが発生します:
Template is missing
Missing template sessions/create
このエラーが発生する理由がわかりません。私のコードは、セッションの作成にリダイレクトする必要があると言っていますか? ありがとう
私のルート:
get 'login', to: 'sessions#new', as: 'login'
get 'logout', to: 'sessions#destroy', as: 'logout'
resources :users
resources :sessions