0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

9/16 今日の学習内容〜レイアウトテンプレートについて学習②〜

Posted at

###今日の学習内容


今日も昨日に引き続き、レイアウトテンプレートについて学習していきました( ´ ▽ ` )ノ

####レイアウトテンプレートの切り替え


コントローラごとやアクションごとにレイアウトテンプレートを切り替えて、一つのウェブサイトで複数のデザインを使うことができます。

レイアウトテンプレートを指定する方法は3つあるようです。(・ω・)ノ

#####ファイル名がコントローラー名.html.erbのファイルを置く


ファイル名がコントローラー名.html.erbのファイルをapp/views/layoutsフォルダに置くという方法が一つ目ですね( ̄▽ ̄)

そのテンプレートが、コントローラ名の場所に入れたコントローラのテンプレートになります。

app/views/layoutsフォルダの場所については下の画像を参考にしてください。

スクリーンショット 2016-09-16 22.53.36.png

#####コントローラでlayoutメソッドを利用する


コントローラでlayoutメソッドを利用することが、二つ目の方法です。

例えとして、TopControllerのレイアウトテンプレート`にsample.html.erbを使いたいときの場合を説明したいと思います(・ω・)ノ

まず、sample.html.erbapp/views/layoutsフォルダに作成しておきます。

次に、top_controller

top_controller.rb
layout "sample"

を書き足します。

引数に入るのは、上の画像のように拡張子を除いた名前になります(・ω・)ノ
ちなみに、シンボルではなく、文字列にする必要があるようです。

#####アクション内でrenderメソッドにオプションをつける


最後に三つ目の方法です。

アクション内でrenderメソッドにlayoutオプションをつけることで指定することができます。

例として、sampleアクションを作って指定してみたいと思います。↓

sampleアクション
def sample
   if "何らかのエラーが発生"
      render layout: "Error!"
   end
end

このように、ある条件の時にだけレイアウトを切り替えられます( ´ ▽ ` )ノ
便利ですね( ̄▽ ̄)

なお、レイアウトテンプレートを使わずに、アクション用のテンプレートをHTML全体にしたい場合は、render layout: falseとするそうです。

こんなことまで書かれている改定基礎3版RubyOnRailsは親切だな、としみじみ思いますね( ̄▽ ̄)

###あとがき


今日も改定基礎3版RubyOnRailsで学習していったわけですが、細かいところまで書かれていてわかりやすい、と改めて感じましたね(^^)
お世話になってますm(__)m

明日は、時間があれば部分テンプレートの学習に進んでいこうと思います。

ここまで読んでくださり、ありがとうございましたm(__)m
###参考にさせていただいたサイト・文献


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?