問題一覧に戻る
上級認証・認可
問題52: 認可システム - Pundit

シンプルでスケーラブルな認可ライブラリであるPunditを使って認可を実装する方法を学習します。認証がユーザーが誰かを確認するのに対し、認可はユーザーが何ができるかを決定します。Punditはポリシーと呼ばれる純粋なRubyクラスを使って認可ロジックを整理します。

# Punditモジュールをインクルード
class ApplicationController < ActionController::Base
Pundit
end

# 認可をチェック
@post = Post.find(params[:id])
@post

# PostPolicyを定義
class PostPolicy < ApplicationPolicy
# 更新権限を定義
def ?
user == record.author
end
end