私のサイトは外部の vbulletin フォーラムに接続されています。ユーザー名、電子メールがvbulletinフォーラムに存在するかどうかを確認するためのカスタムユーザーバリデータがあります。
validate :check_if_forum_user_exists
def check_if_forum_user_exists
if Vbuser.find_by_email(email.downcase)
errors.add(:email, "error 1")
end
if !Vbuser.find(:all, conditions: ["lower(username) = lower(?)",name]).empty?
errors.add(:name, "error 2")
end
end
非常に基本的なパスワード リセット機能があります。最後のステップで、ユーザーは に保存されているパスワードと password_confirmation を入力しますparams[:user]
。@user.update_attributes(params[:user])
コントローラーでは、それを保存して検証 'エラー 1' を取得したいと考えています(既存のすべてのユーザーが vbulletin アカウントを持っているため、常にトリガーされます)。
パスワード以外は何も変更しないので、has_secure_password バリデータのみを実行し、他は実行したくありません。どうすればこれを行うことができますか?そして、このカスタム バリデータがトリガーされる理由。