在布局中,yield
标明一个区域,渲染的视图会插入这里。最简单的情况是只有一个 yield
,此时渲染的整个视图都会插入这个区域:
< html > < head > </ head > < body > <%=
yield
%> </ body > </ html > |
布局中可以标明多个区域:
< html > < head > <%=
yield
:head
%> </ head > < body > <%=
yield
%> </ body > </ html > |
视图的主体会插入未命名的 yield
区域。要想在具名 yield
区域插入内容,得使用 content_for
方法。
3.3 使用 content_for
方法
content_for
方法在布局的具名 yield
区域插入内容。例如,下面的视图会在前一节的布局中插入内容:
<%
content_for :head
do
%> < title >A
simple page</ title > <%
end
%> < p >Hello,
Rails!</ p > |
套入布局后生成的 HTML 如下:
< html > < head > < title >A
simple page</ title > </ head > < body > < p >Hello,
Rails!</ p > </ body > </ html > |
如果布局不同的区域需要不同的内容,例如侧边栏和底部,就可以使用 content_for
方法。content_for
方法还可用来在通用布局中引入特定页面使用的
JavaScript 文件或 CSS 文件。