在您管理时访问用户编辑页面

时间:2016-08-22 18:40:55

标签: ruby-on-rails

目前,我的用户控制器中的编辑操作如下:

  def edit
    @user = User.find(params[:id])
  end

如果我想访问自己的用户个人资料,则此方法有效。但是,如果我想访问其他人的用户个人资料,这将无法正常工作。我应该怎么改变这个?

1 个答案:

答案 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_userapplication_controller以及users_controller模型中的admin字段中定义了user方法。