使用rails 3.2.8,我有一个应用程序,用户可以登录和注销,并修改他们的个人资料。我使用的是has_secure_password。
但是,管理员需要能够更改其个人资料的某些部分。显然,管理员不知道用户密码。
如何在不更改密码的情况下保存修改后的用户配置文件?只有管理员才具有此功能。
答案 0 :(得分:0)
尝试使用'ActiveAdmin'。
这是一个Railscast,解释了详细信息http://railscasts.com/episodes/284-active-admin
答案 1 :(得分:0)
我假设你已经创建了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
答案 2 :(得分:0)
我最终解决了这个问题。我最终做的是在显示表单时将密码和确认设置为某个值(guid)。保存时,控制器会删除params中的字段(如果它们与guid匹配)。然后,模型仅在字段存在时验证(并保存)password_digest