、しかし、ええ、あなたはそのような形をしたいと思います。古いパスワードがときに新しいユーザーの登録、それらを濾過しているだけのように、あなたがパスワードをフィルタリングしていることを確認してください
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/を主要なブラウザ上でのdevのツールをまたは使用)でそれを把握することができますこのコードは、あなたがAgile Web Development with Rails(第4版)の本を読んでいると仮定しています。そうでない場合、いくつかの調整が行われなければならない。