允许用户仅在rails上的ruby上编辑某些信息,而不是管理员

时间:2016-03-28 16:52:41

标签: ruby-on-rails

我正在开发一个rails应用程序,我想让用户只编辑他们的一些信息,比如姓名或个人信息,但我希望管理员用户能够编辑每件事。有没有人帮我这个?

2 个答案:

答案 0 :(得分:0)

感谢@tadman这就是我提出的

def user_params_UserEdit
  if current_user?(@user)
  params.require(:user).permit( :password,
                               :password_confirmation)
elsif current_user.admin?
    params.require(:user).permit(:name, :email, :password,
                               :password_confirmation, :admin, :personel_number)
  end
end

和更新:

def update
@user = User.find(params[:id])
if @user.update_attributes(user_params_UserEdit)
  flash[:success] = "Profile updated"
  redirect_to root_url
else
  render 'edit'
end
end

它与我合作你觉得怎么样?

答案 1 :(得分:0)

您可以将cancan功能用于此目的。它很干净,并提供许多功能来添加/修改权限。

看看
https://github.com/ryanb/cancan

还有一个如何使用它的教程
http://railscasts.com/episodes/192-authorization-with-cancan