Ruby on rails 当用户重置密码时,仅运行密码/密码确认验证
我的网站已连接到外部vbulletin论坛。 我有自定义用户验证程序来检查用户名、电子邮件是否出现在vbulletin论坛上Ruby on rails 当用户重置密码时,仅运行密码/密码确认验证,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我的网站已连接到外部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:
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_属性(params[:user])
保存它,并获得验证“错误1”(因为所有现有用户都有vbulletin帐户,它将始终触发)
我只想运行一个安全的密码验证器,没有其他的,因为除了密码我什么都不更改。你知道我该怎么做吗?
以及为什么会触发此自定义验证器。您可以使用已更改、已更改的属性和已更改的?确定哪些字段在更新时已更改 要检查电子邮件地址是否已更改,您可以执行以下操作:
if email_changed?
...
end
密码可能有点复杂。您可能有一个哈希密码字段,而密码和密码确认在您的模型上不是实际字段。您可以执行类似的操作,以查看哈希密码是否已更改 您可以使用已更改、已更改的属性和已更改的?确定哪些字段在更新时已更改 要检查电子邮件地址是否已更改,您可以执行以下操作:
if email_changed?
...
end
密码可能有点复杂。您可能有一个哈希密码字段,而密码和密码确认在您的模型上不是实际字段。您可以执行类似的操作,以查看哈希密码是否已更改