Rails设计自定义身份验证给出错误未定义的方法`valid_password?'

时间:2015-02-12 15:17:23

标签: ruby-on-rails devise

我在rails应用程序中使用devise进行身份验证,我需要使用自定义检查密码,我用于此

 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

1 个答案:

答案 0 :(得分:2)

尝试这个适用于你的

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