我遵循了 railscast 关于身份验证的教程。因为我有两个需要验证的模型,所以我稍微更改了会话创建代码:
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