使用 rails 3.2.8,我有一个应用程序,用户可以在其中登录和注销,并修改他们的个人资料。我正在使用 has_secure_password。
但是,管理员需要能够更改其个人资料的某些部分。显然,管理员不知道用户密码。
如何在不更改密码的情况下保存修改后的用户配置文件?只有管理员具有此功能。
使用 rails 3.2.8,我有一个应用程序,用户可以在其中登录和注销,并修改他们的个人资料。我正在使用 has_secure_password。
但是,管理员需要能够更改其个人资料的某些部分。显然,管理员不知道用户密码。
如何在不更改密码的情况下保存修改后的用户配置文件?只有管理员具有此功能。
尝试使用“ActiveAdmin”。
这是一个 Railscast 解释细节http://railscasts.com/episodes/284-active-admin
我假设您已经创建了 current_user 方法。
users_controller
before_filter :authorize!, only: [:edit, :update]
def edit
end
def update
end
private
def authorize!
@user = User.find(params[:id])
redirect_to root_url(status: :unauthorized) unless current_user && (current_user.eql?(@user) || current_user.role.eql?("admin"))
end
我最终解决了这个问题。我最终做的是在显示表单时将密码和确认设置为某个值(guid)。保存时,如果这些字段与该 guid 匹配,则控制器会从参数中删除这些字段。然后,模型仅在字段存在时验证(并保存)password_digest