0

Devise 사용자를 수동으로 생성하려고합니다. 문제는 User.create으로 전화하면 유효성 검사가 통과하는 것입니다.Devise 유효성 검사 오류

User.new을 호출하면 결과 사용자 인스턴스가 유효하지 않습니다. 불행히도, 나는 이유를 알 수 없습니다.

결과 오류 메시지는 단순히 "유효성 검사에 실패했습니다."입니다.

어떤 일이 벌어지고 있는지 알 수 있습니까?

#skip_confirmation!에 전화하기를 원하기 때문에 User.create을 사용하지 않는 것이 좋습니다. 따라서 외출하는 이메일은 없습니다.

아이디어를 디버깅하는 방법은 무엇입니까? 나는 스택 트레이스를 통과하려했지만 행운이 없었다.

if user = User.create(params[:user]) 
    user.skip_confirmation! 
    user.save! 
    flash[:success] = "New user #{user.email} created." 
    redirect_to user_root_path 
else 
    flash[:alert] = user.errors 
    redirect_to user_root_path 
end 
+0

오류 개체를 확인 하시겠습니까? –

+1

예외가 발생하지 않는 한'user = User.create (params [: user])'는 항상 사실입니다. 'User.new (params [: user])'를 사용할 때, 특정 오류는 무엇입니까? params 해시를 게시하면 도움이됩니다. – dwhalen

답변

0

이 작동하는 이유를 설명 할 수없는, 그러나 전화는 user.confirm! 이전 user.skip_confirmation! 전화로 문제를 해결할 것으로 보인다.

0

매개 변수 배열에 암호를 추가하려고합니다.

params[:user][:password] = Devise.friendly_token[0,20]

0

조건부 값은 항상 true로 설정되기 때문에 조건부를 변경하십시오. dwhalen이 말했듯이.