1

Ruby on Rails バリデーターを使用して見ている動作を「調整」しようとしています。私たちのアプリケーションでは、パスワードを変更する前にパスワードの確認を求めます。

モデルに検証を追加するだけで、Ruby バリデーターを使用すると非常に簡単です。

 class ChangePassword < BaseModel
    validates_confirmation_of :password

これにより、JavaScript が自動的にアクティブになり、クライアント側でチェックが行われますが、問題は、ユーザーがパスワードを入力すると、確認パスワードを入力する前に、「新しいパスワードが確認と一致しません」というメッセージが表示されることです。

その動作を変更して、確認パスワードが空の場合は JavaScript 側で表示されないようにする必要がありますが、ユーザーが [フォームの送信] ボタンを押すとエラーが発生し続けます。

これはRailsで可能ですか?

ありがとうございました

4

1 に答える 1

1

あなたは条件付き検証技術によってそれを行うことができます。

class ChangePassword < BaseModel
  validates_confirmation_of :password, :if => :password_present?

   private
   def password_present?
     password.present?
   end
end
于 2012-03-29T13:08:52.857 に答える