Ruby on rails 创建会话登录时参数数目错误(0代表1)
嗨,我的rails应用程序出现了这个错误。我是Rails的新手 SessionsController中的ArgumentError创建错误数量的参数 0换1 第13行周围的提取源: 以下是我的用户模型: 这是我的控制器,错误显示第13行,这是这一行Ruby on rails 创建会话登录时参数数目错误(0代表1),ruby-on-rails,mongodb,authentication,login,Ruby On Rails,Mongodb,Authentication,Login,嗨,我的rails应用程序出现了这个错误。我是Rails的新手 SessionsController中的ArgumentError创建错误数量的参数 0换1 第13行周围的提取源: 以下是我的用户模型: 这是我的控制器,错误显示第13行,这是这一行 if user && user.authenticate(params[:session][:password_digest]) 会话控制器: 我不知道怎么了。我只是尝试登录特定控制器并进行身份验证,以避免访问我的所有控制器和页面我
if user && user.authenticate(params[:session][:password_digest])
会话控制器:
我不知道怎么了。我只是尝试登录特定控制器并进行身份验证,以避免访问我的所有控制器和页面我的最佳猜测是params[:session][:password_digest]为零。我会安装pry gem或更好的gem,以便您可以检查控制台的运行情况。创建操作顶部的参数是什么?请在def创建后添加logger.debug参数,并告知输出。什么是Userauthenticate方法?
if user && user.authenticate(params[:session][:password_digest])
class SessionsController < ApplicationController
layout 'login_layout'
def index
end
def create
user = User.where(username: params[:session][:username]).first
# abort(YAML::dump(user))
if user && user.authenticate(params[:session][:password_digest])
redirectUrl = nil
# check if the user is an admin
if user.is_admin == true
if user.locked == true
flash[:danger] = 'You no longer have admin access! Please Contact System Admin for re activation'
else
flash[:success] = 'Welcome ' + user.username
redirectUrl = '/admin'
end
# check if the user is an physicians
elsif user.is_physician == true
redirectUrl = '/physicians'
# check if the user is an patients
elsif user.is_patient == true
redirectUrl = '/user'
# in no usertype found
else
flash[:danger] = 'User type not set. Please Contact Administrator via mail medzoc@support.com'
redirect_to '/login'
end
sign_in user
redirect_to redirectUrl
else
# abort('fail')
flash[:danger] = 'Invalid Username or Password combination' # Not quite right!
redirect_to '/login'
end
end
def destroy
sign_out #helper function
redirect_to '/login'
end
end
Rails.application.routes.draw do
# root Routes
root 'pages#home'
#index Routes
get 'login' => 'sessions#index'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
end