新密码和确认密码不应与当前密码相同。如何在RubyonRails中限制它?
我想在RubyonRails中验证当前密码、新密码和确认密码。当我单击“更改密码”时,它将要求输入当前密码、新密码和确认密码。但是,当我意外地在“当前密码”和“新密码”字段中输入相同的密码时,它不应该允许输入相同的密码。它应该抛出一些错误消息,如“当前密码和新密码不能相同”。但我真的不知道如何在RubyonRails中做到这一点。如果你知道答案,请任何人帮助我。提前感谢我将在我的users\u controller.rb文件中为我的更新方法添加自定义行。我想它现在看起来像这样新密码和确认密码不应与当前密码相同。如何在RubyonRails中限制它?,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我想在RubyonRails中验证当前密码、新密码和确认密码。当我单击“更改密码”时,它将要求输入当前密码、新密码和确认密码。但是,当我意外地在“当前密码”和“新密码”字段中输入相同的密码时,它不应该允许输入相同的密码。它应该抛出一些错误消息,如“当前密码和新密码不能相同”。但我真的不知道如何在RubyonRails中做到这一点。如果你知道答案,请任何人帮助我。提前感谢我将在我的users\u controller.rb文件中为我的更新方法添加自定义行。我想它现在看起来像这样 def updat
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
这将导致
如果@user.errors.any?和@user.update(user_params)
为false(因为已经有错误),只需运行渲染“编辑”
行(如果您以这种方式设置,它通常会显示您的验证错误)。您是否将密码(我希望加密)存储在数据库或后端?哦,我的上帝!!!这对我很有用…太好了…谢谢你比你更谢谢你…非常感谢Ken Stipek。。你做得很好…你把我从一个大麻烦中救了出来。谢谢