Ruby on rails Rails设计自定义身份验证给错误未定义的方法'valid#u password?';

Ruby on rails Rails设计自定义身份验证给错误未定义的方法'valid#u password?';,ruby-on-rails,devise,Ruby On Rails,Devise,我在rails应用程序中使用Desive进行身份验证,我需要使用custom检查密码,并且我使用Desive进行身份验证 def login @email = params[:email] @pass = params[:pass] @doctor = Doctor.find_by_email(@email).valid_password?(@pass) respond_with(@doctor) end 但我的错误率越来越低 undefined me

我在rails应用程序中使用Desive进行身份验证,我需要使用custom检查密码,并且我使用Desive进行身份验证

 def login
    @email = params[:email]
    @pass = params[:pass]
    @doctor = Doctor.find_by_email(@email).valid_password?(@pass)  
    respond_with(@doctor)
  end
但我的错误率越来越低

undefined method `valid_password?' for nil:NilClass

试试这个吧,它会对你有用的
def login
    @email = params[:email]
    @pass = params[:pass]
    @doctor = Doctor.find_by_email(@email)
    if @doctor.nil?
      respond_with('User not available')
    else
      if(@doctor.valid_password?(@pass))
       respond_with(@doctor)
      else
        respond_with('wrong password')
      end  
   end
end

用户输入的电子邮件无效,数据库中不存在。这就是它看起来的样子。