我的表单有update_without_password
方法,但我知道如何在edit_user_registration_path
更新我的密码。
我意识到如果我不提供当前密码,我就无法更改密码,
我可以使用update_wothout_password
方法更改edit_user_form中的密码吗?
我的注册管理员:
def update_resource(resource, params)
resource.update_without_password(params)
end
def after_update_path_for(resource)
biens_path(resource)
end
答案 0 :(得分:1)
这就是我在大多数应用中设置用户的方式
在模型中我有一个方法should_validate_password?
# app/models/user.rb
class User < ApplicationRecord
attr_accessor :updating_password
...
def should_validate_password?
updating_password || new_record?
end
...
end
现在在控制器中我有一个前置过滤器
# app/controllers/users_controller.rb
class UsersController < ApplicationController
before_filter :check_password_submitted, :only => :update
...
private
def check_password_submitted
if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
user.updating_password = false
else
user.updating_password = true
end
end
...
end
这对我有用