1

私のサイトは外部の 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 バリデータのみを実行し、他は実行したくありません。どうすればこれを行うことができますか?そして、このカスタム バリデータがトリガーされる理由。

4

1 に答える 1