私はレールと工夫が初めてなので、何が起こっているのか理解しようとしています。私は、ユーザーが自分のパスワードを編集できるようにするための devise wiki をフォローしています。
私が混乱しているのは、モデルで :validatable を使用しているにもかかわらず、current_password を完了する限り、password/password_confirmation を空白のままにしてもフォームを送信できるように見えることです。これは、validatable.rbで !password.nil? の場合にのみパスワードの検証があるという事実と関係があるようです。1 行あたり 54。
そこで、フォームの送信時に debug(params) を確認することにしましたが、password/password_confirmation フィールドを空白のままにすると、password/password_confirmation が params ハッシュにまったく表示されないようです (ただし、password.nil? は真実?)。
私が理解していないのは、なぜこれが起こるのですか?パスワード フィールドを空白のままにしても、"password" => "" のように、パスワードは他のフィールドと同じように params に表示されるべきではありませんか? フォームを処理するために独自のコントローラーアクションを使用しているので、パスワードがパラメーターにないのはどうしてですか?