1

使用 rails 3.2.8,我有一个应用程序,用户可以在其中登录和注销,并修改他们的个人资料。我正在使用 has_secure_password。

但是,管理员需要能够更改其个人资料的某些部分。显然,管理员不知道用户密码。

如何在不更改密码的情况下保存修改后的用户配置文件?只有管​​理员具有此功能。

4

3 回答 3

0

尝试使用“ActiveAdmin”。

这是一个 Railscast 解释细节http://railscasts.com/episodes/284-active-admin

于 2012-09-14T13:54:02.680 回答
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
于 2012-09-14T15:18:57.450 回答
0

我最终解决了这个问题。我最终做的是在显示表单时将密码和确认设置为某个值(guid)。保存时,如果这些字段与该 guid 匹配,则控制器会从参数中删除这些字段。然后,模型仅在字段存在时验证(并保存)password_digest

于 2012-09-15T20:46:41.090 回答