gpt4 book ai didi

ruby - 新密码和确认密码不能与当前密码相同。如何在 ruby​​ on rails 中限制它?

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:54 25 4
gpt4 key购买 nike

我想在 ruby​​ on rails 中验证当前密码、新密码和确认密码。当我点击更改密码时,它会要求输入当前密码、新密码和确认密码。但是当我不小心在“当前密码”和“新密码”字段中输入相同的密码时,它不应该允许它。它应该抛出一些错误消息,如“当前密码和新密码不能相同”。但我真的不知道如何在 ruby​​ on rails 中做到这一点。如果你知道答案,请任何人帮助我。提前致谢

最佳答案

我会在 users_controller.rb 文件中的更新方法中添加自定义行。我想它目前看起来像这样?

def update
@user = User.find(params[:id])

if @user.update(usere_params)
redirect_to @user
else
render 'edit'
end
end

我会向该文件添加几行,并确保新密码和当前密码不同,如果是,则返回验证错误。

def update
@user = User.find(params[:id])

if params[:user][:new_password] == prams[:user][:current_password]
@user.errors.add(:new_password, 'Can not use current password')
end

if !@user.errors.any? and @user.update(user_params)
redirect_to @user
else
render 'edit'
end
end

这将导致 if !@user.errors.any?和 @user.update(user_params) 为 false(因为已经有错误)并简单地运行 render 'edit' 行(如果有,它通常会显示您的验证错误以这种方式设置)。

关于ruby - 新密码和确认密码不能与当前密码相同。如何在 ruby​​ on rails 中限制它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27371974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com