Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:当前用户应该只能查看自己的用户演示页面(Desive)?_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails:当前用户应该只能查看自己的用户演示页面(Desive)?

Ruby on rails Rails:当前用户应该只能查看自己的用户演示页面(Desive)?,ruby-on-rails,Ruby On Rails,是否有一种方法允许用户只查看自己的个人资料页面usersshow?因此,当id为say 1的人试图访问www.myapp.com/users/412 url时,他将被重新定向到根页面?他只能访问www.myapp.com/users/1 我正在使用Desive,这就是我尝试过的。然而,奇怪的是,使用这段代码,当前用户无法访问自己的页面 用户\u controller.rb 啊,真是太容易了。。。这就是我的工作原理: def only_see_own_page @user = User.fin

是否有一种方法允许用户只查看自己的个人资料页面usersshow?因此,当id为say 1的人试图访问www.myapp.com/users/412 url时,他将被重新定向到根页面?他只能访问www.myapp.com/users/1

我正在使用Desive,这就是我尝试过的。然而,奇怪的是,使用这段代码,当前用户无法访问自己的页面

用户\u controller.rb


啊,真是太容易了。。。这就是我的工作原理:

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

  if current_user != @user
    redirect_to root_path, notice: "Sorry, but you are only allowed to view your own profile page."
  end
end

你应该考虑使用一个库来管理授权。有一个伟大的介绍在。
resources :users, only: [:show]
def only_see_own_page
  @user = User.find(params[:id])

  if current_user != @user
    redirect_to root_path, notice: "Sorry, but you are only allowed to view your own profile page."
  end
end