2009-05-14 10 views
0

場合:クリアパスワードのフィールド私はvirtual_attributesとの定期的なサインアップフォームしたエラー

attr_accessor :password_confirmation 

def password 
    @password 
end 

def password=(password) 
    @password=self.crypted_password = User.encrypt(@password=pass, create_new_password_salt) 
end 

を私は、パスワードに誤りがあるときに、フォームのパスワードフィールドをクリアしたいと思います。パスワードフィールドにエラーが表示されないようにする方法を考えましたが、パスワードフィールドにエラーがある場合は、password_confirmationフィールドを返す方法を理解できません。

ビューは、それはあなたの現在のパスワードの検証がどのように動作するか私には全く明らかではない

<% form_for @user do |f| %> 
    <%= f.password_field :password %> 
    <%= f.password_field :password_confirmation %> 
<% end %> 
+0

あなたのビューコードを投稿することはできますか?これらのフィールドを表示する前に、パスワードとpassword_confirmationをnilに設定することができます。 –

+0

しかし、他のフィールドにエラーがあった場合は、再度パスワードを入力する必要があります。それは私が推測すると不合理ではない。 – Cameron

答えて

3

だけのシンプルですが、どのようにこのようなものについて:

class User < ActiveRecord::Base 
    ... 
    validate :password_confirmation_matches 

    def password_confirmation_matches 
    if password != password_confirmation 
     errors.add_to_base("You did not correctly confirm your password") 
     self.password_confirmation = self.password = nil 
    end 
    end 
end 

でしょうあなたのためにその仕事?

+0

試してみてください!ありがとう – Cameron

+0

これを少し修正しましたが、うまく機能しました。ありがとう – Cameron

関連する問題