我的网站已连接到外部 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
我有非常基本的密码重置功能。在最后一步,用户输入密码和密码确认,它们存储在params[:user]
. 在控制器中,我想保存它@user.update_attributes(params[:user])
并获得验证“错误 1”(因为所有现有用户都有 vbulletin 帐户,它总是会触发)。
我只想运行 has_secure_password 验证器,而没有其他验证器,因为除了密码我什么都不更改。知道我该怎么做吗?以及为什么会触发此自定义验证器。