10000hの技術メモ

この先生きのこるための勉強内容&時間記録

Ruby on Rails Ⅲ 2章 scaffoldのコードに近付けよう(1)〜before_action

20170225@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

目次

before_action

scaffoldで作られたコントローラから学ぶ。

scaffoldで作られたコントローラ内のアクションで、

@note = Note.find(params[:id])

が無く、いきなり@noteを使っている。なぜこんなことができるのかを解説。

各アクションで同じように@noteを定義していると重複なので、一つのメソッドset_noteにまとめる。

def set_note
  @note = Note.find(params[:id])
end

これを、

before_action:set_note

で呼び出すと、全てのアクションの最初でset_noteが呼ばれる。

「全てだとちょっと・・・」というときには

before_action:set_note, only: [:show, :edit. :update, :destroy]

set_noteはprivateで定義する。

明日も仕事なので、今日は少しで。

今回の勉強時間:12分 累計勉強時間:7時間55分