tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【rails】layout

指定しなければ /app/view/layout/application.html.erb が全てのテンプレートのレイアウトとして適応される。 特定のコントローラーのアクションから呼び出されるテンプレートに特定のレイアウトを使用したい場合は /app/view/layout/コントローラー名.html.erb を作成する。

複数のコントローラで特定のレイアウトファイルを使用する場合に任意の名前をつける。(app/views/layouts/任意の名前.html.erb) 以下のようにコントローラーで使用するレイアウトファイルを指定する。

class コントローラ名 < ApplicationController
  layout "任意の名前" 
(中略)
end

アクション単位でレイアウトファイルを指定する場合

def index
  render :layout => "任意の名前"

アクション単位でレイアウトファイルを無効にする場合

def index
  render :layout => false
end

コントローラー単位でレイアウトファイルを無効にする場合

class コントローラ名 < ApplicationController
  layout false
(中略)
end

参考 https://www.javadrive.jp/rails/template/index3.html