2011-02-01 4 views
2

私は安静な認証プラグインを使用していますが、私のサイトでは "パスワードの確認"フィールドのない登録フォームが必要です。今問題は、私のユーザモデルに含まれているプラ​​グインモジュールにいくつかのバリデーションがハードコードされていることです。プラグインで定義されたモデルの検証をスキップ

# Authentication::ByPassword 
validates_presence_of  :password_confirmation,  :if => :password_required? 
validates_confirmation_of :password,     :if => :password_required? 

プラグインにパッチを適用せずにこれらの検証を無効にするにはどうすればよいですか?私のモデルでバリデーションを再定義すれば、これはトリックですか?そのような場合のベストプラクティスは何でしょうか?

save(false) 

または::

update_attribute 

をすべてまたは1つの検証をスキップするためにあなたが使用できる

# user.rb 
validates_presence_of  :password_confirmation,  :if => Proc.new { false } 
validates_confirmation_of :password,     :if => Proc.new { false } 
+0

[OK]を、いくつかの単体テストを書いて、検証を再定義することは役に立ちません。他の選択肢はありますか? – egze

+0

今のところ、私はプラグインにパッチを当てました – egze

答えて

2

+0

申し訳ありませんが、バリデーションなしでの保存や属性の直接変更はオプションではありません。 – egze

+1

params [:password_confirmation]を追加してparams [:password]をコピーしてみましたか? – apneadiving

+0

どうやら私は私のサイトで3つの言語を持っているカスタムバリデーションの翻訳のためにプラグインにパッチを当てる必要があったようです。しかし、いいアイデアありがとう – egze

関連する問題