コントローラーの諸知識の軽いまとめです。
before_action
あるコントローラのすべてのアクションで実行の前に共通の処理を行いたい場合のコード
contoroller
class コントローラ名 < ApplicationController
before_action :処理させたいメソッドの名前
コントローラーの継承
コントローラーは継承元のコントローラーから内容を継承することが
可能です。継承元にbefore_actionが設定されていれば
それを行ってから現在のコントローラーで処理が実行されます。
controller
class コントローラ < 継承元のコントローラ
end
# 例
# 継承元
class StoreController < ApplicationController
before_action :say
def say
puts "Hello"
end
end
# 継承先 sayが実行されてから以下の変数が実行される
class PetController < StoreController
def show
@saru = Saru.find(params[:id])
end
end
レイアウトファイル
app/views/layouts/の下に入っているHTMLファイルです。
レイアウトファイルはURLにアクセスして対応するコントローラが呼ばれたあと、最初に表示されるHTMLのことです。
コントローラ内でlayout 'レイアウトファイル名'と書くと、そのコントローラでのアクションが呼ばれたあと表示するビューのレイアウトファイルを指定できます。
controller
class StoreController < ApplicationController
layout 'レイアウトファイル名'
# なにも指定しないとレイアウトファイルはapplication.html.erbになります。
# 例
layout 'pict'
# StoreControllerのindexアクションが呼ばれたときに表示されるレイアウトはpict.html.erbとなります。
def index
end
end