###今日の学習内容
今日も昨日に引き続き、レイアウトテンプレートについて学習していきました( ´ ▽ ` )ノ
####レイアウトテンプレートの切り替え
コントローラごとやアクションごとにレイアウトテンプレートを切り替えて、一つのウェブサイトで複数のデザインを使うことができます。
レイアウトテンプレートを指定する方法は3つあるようです。(・ω・)ノ
#####ファイル名がコントローラー名.html.erb
のファイルを置く
ファイル名がコントローラー名.html.erb
のファイルをapp/views/layouts
フォルダに置くという方法が一つ目ですね( ̄▽ ̄)
そのテンプレートが、コントローラ名の場所に入れたコントローラのテンプレートになります。
app/views/layouts
フォルダの場所については下の画像を参考にしてください。
#####コントローラでlayout
メソッドを利用する
コントローラでlayout
メソッドを利用することが、二つ目の方法です。
例えとして、TopController
のレイアウトテンプレート`にsample.html.erb
を使いたいときの場合を説明したいと思います(・ω・)ノ
まず、sample.html.erb
をapp/views/layouts
フォルダに作成しておきます。
次に、top_controller
に
layout "sample"
を書き足します。
引数に入るのは、上の画像のように拡張子を除いた名前になります(・ω・)ノ
ちなみに、シンボルではなく、文字列にする必要があるようです。
#####アクション内でrender
メソッドにオプションをつける
最後に三つ目の方法です。
アクション内でrender
メソッドにlayout
オプションをつけることで指定することができます。
例として、sample
アクションを作って指定してみたいと思います。↓
def sample
if "何らかのエラーが発生"
render layout: "Error!"
end
end
このように、ある条件の時にだけレイアウトを切り替えられます( ´ ▽ ` )ノ
便利ですね( ̄▽ ̄)
なお、レイアウトテンプレートを使わずに、アクション用のテンプレートをHTML全体にしたい場合は、render layout: false
とするそうです。
こんなことまで書かれている改定基礎3版RubyOnRailsは親切だな、としみじみ思いますね( ̄▽ ̄)
###あとがき
今日も改定基礎3版RubyOnRailsで学習していったわけですが、細かいところまで書かれていてわかりやすい、と改めて感じましたね(^^)
お世話になってますm(__)m
明日は、時間があれば部分テンプレートの学習に進んでいこうと思います。
ここまで読んでくださり、ありがとうございましたm(__)m
###参考にさせていただいたサイト・文献