ruby on rails - valid_password - Rails用戶配置文件頁面只能訪問更正用戶




rails generate devise user (2)

在用戶和配置文件之間創建has_one belongs_to關係。 在您的控制器中,您可以包含一些僅顯示當前用戶配置文件的邏輯。

權威人士是一個很好的寶石,有助於授權 - https://github.com/elabs/pundit

我正在使用設計進行身份驗證。 現在,我正在設置用戶配置文件。 我已經設置了一切,除了每個人都可以訪問每個頁面(所以你可以看到沒有被登錄的配置文件)。 我如何做到這一點,只有正確的用戶可以看到自己的個人資料頁面?

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>

這應該有助於檢測current_user是否正確。

class UsersController < ApplicationController

    before_action :check_user

    private

    def check_user
      if current_user != @user
        redirect_to root_url, alert: "Sorry, This Profile belongs to someone else !"
      end
    end
end