하지만, 그래, 당신은 그런 양식을 원하는 것입니다. 이전 암호가
user = User.find(session[:user_id]) if session[:user_id]
if user and user.authenticate(params[:old_password])
if params[:password] == params[:password_confirmation]
user.password_confirmation = BCrypt::Password.create(params[:password])
respond_to do |format|
format.html # reset_password_success.html.erb
end
else
redirect_to reset_password_url, notice: "Incorrect Password."
end
else
redirect_to reset_password_url, notice: "Incorrect Password."
end
당신이 그들이 때 새 사용자 등록을 필터링하고처럼 암호를 필터링해야합니다 수행하여 유효한 경우 컨트롤러 액션 확인합니다.
양식이 작동하는지 여부는 확실하지 않습니다. 나는 옳은 방법으로 양식을 만들거나 서둘러 양식을 붙이면 보통의 오래된 HTML을 사용하여 그것을 해킹하거나 버팀목으로 사용한다는 것을 알게되었습니다. 시간 제약과 과거 경험을 토대로 결정하십시오.
양식이 올바르게 작동하지만 요청을 처리하는 동안 오류가 발생하면 params [: old_password] 등을 사용하여 실제로 매개 변수에 액세스해야합니다. params [: user] [: old_password]와 같은 다른 params 객체 안에 중첩 될 수 있습니다. 레일 콘솔을 보거나 로그를보고 매개 변수가 전송되는 방법을 확인할 수 있습니다. 이것은에게 Heroku에서 호스팅되는 경우, 당신은 로그의에 대한 Heroku가 요청해야합니다 =>https://devcenter.heroku.com/articles/logging 그리고 당신은 또한
교통 네트워크 듣고 (피들러 =>http://www.fiddler2.com/fiddler2/을 주요 브라우저에 개발 도구 또는 사용)하여 알아낼 수 이 코드는 Agile Web Development with Rails (4th ed.) 책에서 벗어나고 있다고 가정합니다. 그렇지 않은 경우 일부 조정이 이루어져야합니다.