2012-03-29 11 views
1

Ruby on Railsバリデータを使用して見ている動作を "微調整"しようとしています。私たちのアプリケーションでは、パスワードを変更する前にパスワードの確認を求めます。ユーザがRailsに入力を入力する前に '新しいパスワードが確認と一致しません'と表示されない

Rubyはちょうど自動的にクライアント側でそれを確認するためにJavaScriptを活性化するが、問題は、ユーザーが入力したときに、ということであるモデル

class ChangePassword < BaseModel 
    validates_confirmation_of :password 

に検証を追加し、バリでは非常に簡単です。パスワードを入力してから確認パスワードを入力する前に、「新しいパスワードが確認と一致しません」というメッセージが表示されます。

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

これはRailsでも可能ですか?

ありがとうございました

答えて

1

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

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

    private 
    def password_present? 
    password.present? 
    end 
end 
+0

クール!出来た。構文エラーがいくつかあるので、私はあなたの答えを編集しました。 – Khelben

関連する問題