gpt4 book ai didi

ruby-on-rails - ActiveAdmin - 在不更改密码的情况下编辑设计用户

转载 作者:数据小太阳 更新时间:2023-10-29 07:01:19 24 4
gpt4 key购买 nike

我尝试这样做。不幸的是,我在覆盖更新方面遇到了问题,我不知道如何正确地做到这一点。我在另一个地方这样做的方式是:

if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
# ...
user.save!

所以我尝试重写update

def update
if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
super
end

但它不起作用。我仍然在密码输入附近看到 can't be blank 。如何实现预期的行为?

最佳答案

我采纳@anonymousxxx的回答,加上以下内容:

如果您使用的是 rails admin,则可以按如下方式覆盖 Controller “User”:

#app/admin/user.rb
controller do
def update
if params[:user][:password].blank? && params[:user][:password_confirmation].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
super
end
end

您还应该注意,如果您有用户模型验证,请指定何时应用此类验证,例如:

validates :name, :email, presence: true
validates :password, :password_confirmation, presence: true, on: :create
validates :password, confirmation: true

这允许我仅在创建新用户并在不更改其密码的情况下进行更新时验证密码是否存在。

希望对您有所帮助。

关于ruby-on-rails - ActiveAdmin - 在不更改密码的情况下编辑设计用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610064/

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