2016-09-10 19 views
0

Ruby on Rails Tutorialexercises for 10.1.2 - Unsuccessful Editsで正しく機能していないことをテストするよう依頼されています。Rails:password_confirmationが指定されている場合、パスワードが存在することを確認してください。

おそらく私はこの練習をあまりにも徹底的に行ったのでしょうか?パスワードnilとパスワードをnil password_confirmationで提出するのが「有効」であることがわかりました。

私はhas_secure_passwordがこれをキャッチすると思いましたか?

1)どうしてですか?

2)passwordpassword_confirmationの場合はどうすればよいですか?

私は現在持っている: validates :password, presence: true, length: { minimum: 6 }, allow_nil: true

私は, confirmation: trueを追加しようとしたが、これは役立ちません。

+0

削除allow_nilをお試しください:真 –

+0

'nil'は、プロフィール編集ページのために必要とされる - ユーザーは&パスワードを入力するように要求されるべきではありませんプロファイル設定を編集したい場合は確認してください。 –

+0

更新は私が思うに変更した属性に対してのみトリガされます。あなたがまだいなければ試してみてください。 –

答えて

0

はブールに基づいて適用さvalidatesを追加します。

validates :password, presence: true, if: :password_confirmation_given? 

def password_confirmation_given? 
    password_confirmation.nil? ? false : !password_confirmation.empty? 
end 
0

妥当性検査を実行する場合は、検証可能なモジュールをモデルに追加できます。

devise 
    :validatable 

あなたはレールがそれを検証したい場合、あなたはまだ問題がある場合は、

validates_confirmation_of :password 

を使用することができますが、あなたが強いのパラメータを初期化および/またはあなたのparamsのコードを投稿しているか確認してください。

関連する問題