layoutとは
view内に繰り替え時登場する"layout"が存在する場合、そいつをそれぞれのhtmlに繰り返し書くことを避けるために、まとめられるよっていうもの。
layout内の<%= yield %>
にそれぞれのrenderされるviewが入る。
Layoutのnamespaceルール
So simple. 基本的にはactionが呼ばれてるcontrollerのnamespaceと同じところにある、layoutを見に行く。なければ上にさかのぼる。
admin/hogeparent/hogechild_controller.rb
のcontrollerから先に呼ばれるのは
layout/admin/hogeparent/hogechild.html.erb
でこいつがいなければ
layout/admin/hogeparent.html.erb
が見られて...って感じで上にさかのぼって参照される。
namespaceに逆らいたいこともある
ある特定のアクションから、その周辺のlayoutとは異なるものを利用したい場合、
その特定のcontrollerのアクションから
render layout "path/to/layout"
でrender時に使用したいlayoutを指定できる。render template
との併用も可。