テンプレートレイアウトの作り方

Railsプロジェクトを作ると、app/views/layoutsというフォルダができています。
ここは、いわゆるテンプレートレイアウトのようなものを入れておくところで、コントローラと同じ名前のrhtmlを作成すると、そのコントローラで表示されるすべてのビューには、デフォルトでそのテンプレートが適用される、という仕組みになっています。


たとえば、コントローラが格納されているフォルダ(app/controllers)の中に、check_controller.rbというファイルがあったとしましょう。
その場合、layoutsフォルダの中にcheck.rhtmlというファイルを作り、そこにテンプレートレイアウトを書いておくと、check_controller.rbで実行される結果は、そのテンプレートを利用して表示される、というわけです。

たとえば、先ほどのコントローラが格納されているフォルダの中に最初から入っている、application.rbというファイルがあります。
レイアウトはこれにも対応していて、application.rhtmlというファイルを作り、そこにテンプレートレイアウトを書いておくと、すべてのコントローラから実行される結果は、このテンプレートを利用して表示される、ということになりました。

さてさて。
それならば、application.rhtmlとcheck.rhtml両方が混在していた場合はどうなるのでしょう。

この場合、check_controller.rbのものはcheck.rhtmlをテンプレートとして、
それ以外のすべてのコントローラはapplication.rhtmlをテンプレートとして動くみたいです。

今までの話をまとめるとこうなります。

テンプレートレイアウトの優先順位

個別のテンプレート.rhtml > application.rhtml > 何も設定しない

今さらながら、よくできているフレームワークだなぁ、と個人的には感心してます。

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加 |

0 Responses to “テンプレートレイアウトの作り方”


  1. No Comments

Leave a Reply