2016-07-24 26 views
-2
def create 
user_password = params[:session][:password] 
user_email = params[:session][:email] 
user = user_email.present? && User.find_by(email: user_email) 

if user and user.valid_password? user_password 
    sign_in user 
    user.generate_authentication_token! 
    user.save 
    render json: user, status: 200, location: [:api, user] 

else 
    #render json: { errors: "Invalid email or passwords"}, status: 422 
    render json: { errors: "Invalid email or passwords"}, status: 422 

end 

user.valid_password色器件寶石不起作用

無法登錄用戶登錄後,似乎valid_password?方法不會加密與設備存儲在數據庫中的加密密碼相同格式的密碼,任何幫助將不勝感激。

回答

2

該代碼適用於創建會話。請檢查您是否正確創建用戶!

爲此在你的Rails控制檯

User.create({email:"[email protected]",password:"anything"}) 
User.find(type the id of new user).valid_password?("anything") 

如果返回true,那麼你沒有正確地創建用戶。檢查你創建用戶的方法。

+0

感謝您的幫助:) –