gpt4 book ai didi

ruby-on-rails-3.1 - 如何制作密码更改表单?

转载 作者:行者123 更新时间:2023-12-04 16:44:49 24 4
gpt4 key购买 nike

我正在使用 has_secure_password 方法,如何更改密码表单和 Controller 操作?我想它一定是这样的:

<%= form_for @parent, :url => update_password_path(@parent) do |f| %>
<%= f.label :old_password %><br />
<%= f.text_field :old_password %><br />
<%= f.label :new_password %><br />
<%= f.text_field :password %><br />
<%= f.label :password_confirmation %><br />
<%= f.text_field :password_confirmation %><br />
<%= f.submit %>
<% end %>

最佳答案

我仍然不确定如何按照标准方式“正确”地执行此操作,但是,是的,您会想要这样的表格。 Controller 操作将通过执行

检查旧密码是否有效
user = User.find(session[:user_id]) if session[:user_id]
if user and user.authenticate(params[:old_password])
if params[:password] == params[:password_confirmation]
user.password_confirmation = BCrypt::Password.create(params[:password])
respond_to do |format|
format.html # reset_password_success.html.erb
end
else
redirect_to reset_password_url, notice: "Incorrect Password."
end
else
redirect_to reset_password_url, notice: "Incorrect Password."
end

确保过滤密码,就像新用户注册时过滤密码一样。

我不知道您的表单是否有效。我发现,如果我对如何以正确的方式或匆忙创建表单感到困惑,我只是使用常规的旧 HTML 将其拼凑在一起或将其用作拐杖。根据您的时间限制和过去的经验来决定。

如果表单工作正常,但在处理请求时出现错误,请确保您确实使用 params[:old_password] 等访问参数。它可能嵌套在另一个 params 对象中,如 params[:user][:old_password]。您可以通过查看 Rails 控制台或查看日志来了解参数是如何发送的。如果它托管在 Heroku 上,您需要向 Heroku 询问它的日志 => https://devcenter.heroku.com/articles/logging你也可以通过监听网络流量来弄清楚(主要浏览器上的开发工具或使用 Fiddler => http://www.fiddler2.com/fiddler2/ )

此代码假设您正在学习使用 Rails 进行敏捷 Web 开发(第 4 版)一书。如果不是,则必须进行一些调整。

关于ruby-on-rails-3.1 - 如何制作密码更改表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839996/

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