Layoutの全て
久々にRailsでもやってみようかと思ったら、以前からかなり時間が経っててすっかり抜けてしまっている状態。。ショックを受けつつも仕方がないのでもう一回やり直すことに。
今回はRailscastより#7 All About Layouts。何回も見るのも時間の無駄なので要点をメモ。結構前のものなので情報が古いかもしれないけど、一応2.0.2で動作したので問題ないはず。
以下レイアウトの種類で、後のものが優先される。
layoutファイルに <%= yield %> と書けば、その部分にViewが出力される。
グローバル
後述のレイアウトが未定義の全ての画面に適応される。
- layouts/application.rhtml
コントローラ
コントローラ毎にレイアウトを適応できる。
- layouts/コントローラ名.rhtml
指定
コントローラクラスで指定。
- layouts/任意の名前.rhtml
class XXXController < ApplicationController layout "admin"
動的に切替
コントローラクラスで指定。
- layouts/任意の名前.rhtml
class XXXController < ApplicationController layout :user_layout protected def user_layout if current_user.admin? "admin" else "user" end end