只有正确的用户才能访问Rails用户个人资料页面

时间:2016-04-04 16:15:36

标签: ruby-on-rails ruby devise

我正在使用设计进行身份验证。现在,我正在设置用户个人资料。我已经设置了所有内容,但每个页面都可供所有人访问(因此您无需登录即可查看配置文件)。如何制作它以便只有正确的用户才能看到自己的个人资料页面?

users_controller.rb

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
  end
end

的routes.rb

devise_for :users

  resources :users, only: [:show]

  get 'users/show'

显示视图...

<div class="home-page-content">
  <%= @user.id %>
<h1>Users#show</h1>

<p>Find me in app/views/users/show.html.erb</p>
</div>

2 个答案:

答案 0 :(得分:3)

这个应该有助于检测current_user是否正确。

3-SAT

答案 1 :(得分:0)

在用户和个人资料之间创建一个has_one belongs_to关系。在您的控制器中,您可以包含一些仅显示当前用户配置文件的逻辑。

Pundit是一个很好的宝石,有助于授权 - https://github.com/elabs/pundit