【发布时间】:2017-06-01 16:36:06
【问题描述】:
我正在将 Devise 与 Ruby on Rails 一起使用,并且我想设置一个用于编辑用户的视图,只有当我想要一个新密码时,我才必须在其中提供当前密码。换句话说 - 如果我想更改我的姓名或生日,我可以简单地将密码字段留空,但如果我想更改密码,我希望有标准的设计行为。
我的编辑表单如下所示:
我试图通过覆盖 update_resource 方法来允许没有密码的更新 here:
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
但是,如果不从 params.require(:user).permit(...) 中删除 current_password,我会收到以下错误:
我无法从允许的参数中删除它,因为我想在密码更改时使用它。
有什么方法可以做到这一点?我正在考虑拆分视图并创建一个用于密码编辑的新表单以及一个用于密码编辑的控制器,但我希望将它们全部放在一个地方。
【问题讨论】:
-
我的回答能解决问题吗?
-
是的,绝对!我写了一条评论,感谢你,我想我没有点击“添加评论”-_-你的回答非常有帮助,直截了当:)我只做了一点升级,替换了“else”之间的代码" 和 "end" 只用 "super" :)
-
很高兴听到!随意接受我的回答:)
标签: ruby-on-rails forms devise