Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当用户重置密码时,仅运行密码/密码确认验证_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 当用户重置密码时,仅运行密码/密码确认验证

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:

我的网站已连接到外部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_属性(params[:user])
保存它,并获得验证“错误1”(因为所有现有用户都有vbulletin帐户,它将始终触发)

我只想运行一个安全的密码验证器,没有其他的,因为除了密码我什么都不更改。你知道我该怎么做吗?
以及为什么会触发此自定义验证器。

您可以使用已更改、已更改的属性和已更改的?确定哪些字段在更新时已更改

要检查电子邮件地址是否已更改,您可以执行以下操作:

if email_changed?
  ...
end

密码可能有点复杂。您可能有一个哈希密码字段,而密码和密码确认在您的模型上不是实际字段。您可以执行类似的操作,以查看哈希密码是否已更改

您可以使用已更改、已更改的属性和已更改的?确定哪些字段在更新时已更改

要检查电子邮件地址是否已更改,您可以执行以下操作:

if email_changed?
  ...
end
密码可能有点复杂。您可能有一个哈希密码字段,而密码和密码确认在您的模型上不是实际字段。您可以执行类似的操作,以查看哈希密码是否已更改