Ruby on rails 允许用户仅在RubyonRails上编辑某些信息,而不允许管理员编辑

Ruby on rails 允许用户仅在RubyonRails上编辑某些信息,而不允许管理员编辑,ruby-on-rails,Ruby On Rails,我正在开发一个rails应用程序,我想让用户只编辑他们的一些信息,如姓名或个人信息,但我希望管理员用户能够编辑所有内容。有人帮我吗?多亏了@tadman,这就是我想到的 def user_params_UserEdit if current_user?(@user) params.require(:user).permit( :password, :password_confirmation) elsif current_us

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

多亏了@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

我觉得它很好,你觉得怎么样?

你可以使用cancan功能来实现这一目的。它是干净的,并提供了许多功能来添加/修改权限

看一看

还有一个关于如何使用它的教程

如果您使用的是较新版本的Rails,您应该可以访问用于您描述的特定案例的Rails。向我们展示您迄今为止的想法。