#概要
コントローラのなかで処理を共通化したい場合の方法をしてbefore_action
を使うことを学んだので、
その方法をメモします。
#方法
- idからDBを一つ取得する処理を共通化する
###privateに共通化する処理を記述
.rb
private
def set_question
@question = Question.find(params[:id])
end
###before_actionを記述
.rb
class QuestionsController < ApplicationController
before_action :set_question
end
###実行するアクションを指定したい場合はonlyオプション
を追加で記述
.rb
class QuestionsController < ApplicationController
before_action :set_question, only: [:show, :edit, :destroy, :update]
end
###実行しないアクションを指定する場合はexceptオプション
を追加で記述
.rb
class QuestionsController < ApplicationController
before_action :set_question, except: [:index]
end