Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建会话登录时参数数目错误(0代表1)_Ruby On Rails_Mongodb_Authentication_Login - Fatal编程技术网

Ruby on rails 创建会话登录时参数数目错误(0代表1)

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]) 会话控制器: 我不知道怎么了。我只是尝试登录特定控制器并进行身份验证,以避免访问我的所有控制器和页面我

嗨,我的rails应用程序出现了这个错误。我是Rails的新手

SessionsController中的ArgumentError创建错误数量的参数 0换1

第13行周围的提取源:

以下是我的用户模型:

这是我的控制器,错误显示第13行,这是这一行

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