before_actionメソッドってコードをスッキリさせてくれる優れものです!
before_actionメソッドとは、コントローラーで定義されたアクションが実行される
前に、共通の処理を行うことができます。
このメソッドを使用することで、重複した記述を1つのメソッドにまとめつことが
出来るため、コードがすっきりして可読性が高まります。
今回は only オプションも使って edit と show アクションのみに before_actionで
set_postを使って、処理します。
set_post は private に記述します。
app/controllers/posts_controller.rb
class PostsController < ApplicationController before_action :set_post, only: [:edit, :show] def index @posts = Post.all end def new @post = Post.new end def create Post.create(post_params) end def destroy post = Post.find(params[:id]) post.destroy end def edit end def update post = Post.find(params[:id]) post.update(post_params) end def show end private def post_params params.require(:post).permit(:name, :image, :text) end def set_post @post = Post.find(params[:id]) end end
こもメソッド、すごく便利ですよね。
今回は 1つだけしか使いませんでしたが、before_actionメソッドは他にもたくさん
あるので、また違うものもシェアしていけたらと思います。