gpt4 book ai didi

ruby-on-rails - 设计更改密码不起作用(未知属性 : current_password)

转载 作者:行者123 更新时间:2023-12-03 23:24:34 25 4
gpt4 key购买 nike

我不太确定我做错了什么,但是当用户尝试在我的应用程序上更改他们的密码时,它会给出一个错误,即 current_password 是一个未知属性。

这是我的代码:

def configure_devise_permitted_parameters
registration_params = [:email, :password, :password_confirmation, :first_name, :last_name]

if params[:action] == 'update'
devise_parameter_sanitizer.for(:user_update) {
|u| u.permit(registration_params << :current_password)
}
elsif params[:action] == 'create'
devise_parameter_sanitizer.for(:sign_up) {
|u| u.permit(registration_params)
}
end
end

class RegistrationsController < Devise::RegistrationsController
def update
account_update_params = devise_parameter_sanitizer.sanitize(:user_update)

if account_update_params[:password].blank?
account_update_params.delete("password")
account_update_params.delete("password_confirmation")
account_update_params.delete("current_password")
end

@user = User.find(current_user.id)
if @user.update_attributes(account_update_params)
set_flash_message :notice, :updated
sign_in @user, bypass: true
redirect_to after_update_path_for(@user)
else
render "edit"
end
end

我在这里做错了什么?在正确保存新密码之前,我应该用 current_password 做什么来检查它是否正确?

编辑:堆栈跟踪
activerecord (4.0.3) lib/active_record/attribute_assignment.rb:47:in `rescue in _assign_attribute'
activerecord (4.0.3) lib/active_record/attribute_assignment.rb:42:in `_assign_attribute'
activerecord (4.0.3) lib/active_record/attribute_assignment.rb:29:in `block in assign_attributes'
activerecord (4.0.3) lib/active_record/attribute_assignment.rb:23:in `each'
activerecord (4.0.3) lib/active_record/attribute_assignment.rb:23:in `assign_attributes'

最佳答案

从设计 4 开始,

当得到 'current_password' 的未知属性 ,
无需玩devise_parameter_sanitizer
进入 app/controllers/registrations_controller.rb

改变

def update_resource(resource, params)
resource.update_without_password(params)
end

经过
def update_resource(resource, params)
resource.update_with_password(params)
end

关于ruby-on-rails - 设计更改密码不起作用(未知属性 : current_password),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23067299/

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