rails更新配置文件而不知道密码

时间:2012-09-14 13:49:50

标签: ruby-on-rails

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

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

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

3 个答案:

答案 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