問題一覧に戻る
中級コントローラー応用
問題29: before_action - コントローラーフィルタ

Railsでbefore_actionフィルタを使ってコントローラーアクションの前にコードを実行する方法を学習します。フィルタはDRY(Don't Repeat Yourself)の原則に不可欠で、認証チェック、データ読み込み、認可などの共通機能を抽出できます。onlyとexceptオプションを使って、すべてのアクションまたは特定のアクションにフィルタを適用できます。

class PostsController < ApplicationController
# アクションの前にset_postを実行
:set_post, : [:show, :edit, :update, :destroy]

def show
end

# privateメソッドセクション


def set_post
@post = Post.find(params[:id])
end
end