英文学生の日常

業務日誌.tomo

業務で感じたことをひたすら綴る

2020-5-7 モックアップについて

12時起床.勉強時間は9h.

モックアップについて軽くまとめる

参考(黒田努,佐藤和人. 改訂4版 基礎Ruby on Rails (基礎シリーズ) (Japanese Edition) )

レイアウトテンプレート

ウェブサイトではページごとのデザインを統一する必要ある(バラバラだと面倒だし統一感ないしね).そこで使うのが「レイアウトテンプレート」である.

ページには「枠」と「コンテンツ」があり,レイアウトテンプレートは「枠」にあたる.これは一度作ればいろいろなページに流用できるから便利だ.

 

レイアウトテンプレートはapp/views/layoutsディレクトリの下においたテンプレートをレンダリングして,それをレイアウトテンプレートの中に埋め込む.そしてテンプレートを埋め込んだレイアウトテンプレート(application.html.erb)全体を出力する.

application.html.erb自体はrails newコマンドを使ったら自動でapp/views/layoutsの下に生成される(便利).そして,いろいろなテンプレート,ページごとのコンテンツ(index aboutとか)は<%= yield %>に埋め込まれる.

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

切り替え方は三つ

1.app/views/layoutsディレクトリにtop.html.erbのようにファイル名が「コントローラ名.html.erb」のテンプレートを置く

2.コントローラでlayoutメソッドを使う.この場合引数は文字列.

3.アクション内でrenderメソッドにlayoutオプションを付けてテンプレートファイル名を指定する.layoutオプションを使えば、ある条件の場合にだけレイアウトを切り替えることができる.

レイアウトの継承

ApplicationControllerにlayoutメソッドを記述すると,すべてのコントローラにレイアウトが継承されます.たとえば,次のようにApplicationControllerでレイアウトを指定したとします.

classApplicationController<ActionController::Baselayout"application"

end

そして次のようにTopControllerとHelpControllerを定義したとします.classTopController<ApplicationController

end

 

classHelpController<ApplicationController

layout"simple"

end

この場合,TopControllerではapp/views/layouts/application.html.erbが,HelpControllerではapp/views/layouts/simple.html.erbがレイアウトとして使われます.

 

黒田努,佐藤和人. 改訂4版 基礎Ruby on Rails (基礎シリーズ) (Japanese Edition) (Kindle の位置No.2993-3001). Kindle 版.