目前,我的用户控制器中的编辑操作如下:
def edit
@user = User.find(params[:id])
end
如果我想访问自己的用户个人资料,则此方法有效。但是,如果我想访问其他人的用户个人资料,这将无法正常工作。我应该怎么改变这个?
答案 0 :(得分:1)
添加一个先行动check_right_user
,用于检查当前用户是否正在尝试访问自己的个人资料。
before_action :check_admin, only: [:edit, :update, :destroy]
def check_admin
unless current_user.admin?
redirect_to root_path, alert: "You're not authorized"
end
end
我假设您的current_user
或application_controller
以及users_controller
模型中的admin
字段中定义了user
方法。