Layouts设施
1) 很多页面共享了菜单栏,页面头部,尾部等html元素
2) 很多页面共享了一些html的片段信息如一个list内容
3) 同一个函数出现在多个地方
通过layout以及相关的组件可以避免以上的重复操作。
当Rails响应一个请求,返回一个模板的时候,实际返回两个模块内容:
1) 返回要求的模板,一般以action命名的默认模板
2) 返回Layout模板的内容
Layout模板:
通过以下方式,让默认模板嵌套在layout模板中:
通过在controller中使用layout进行声明就可以重载默认的layout模板的配置
也可以对使用该模板的actions进行限制:
#render(:layout => false) 不适用模板
1) 很多页面共享了菜单栏,页面头部,尾部等html元素
2) 很多页面共享了一些html的片段信息如一个list内容
3) 同一个函数出现在多个地方
通过layout以及相关的组件可以避免以上的重复操作。
当Rails响应一个请求,返回一个模板的时候,实际返回两个模块内容:
1) 返回要求的模板,一般以action命名的默认模板
2) 返回Layout模板的内容
Layout模板:
通过以下方式,让默认模板嵌套在layout模板中:
<%= yield :layout%>
<!--以下两种写法也可以-->
<!--<%=yield%>-->
<!--<%=@content_for_layout%>-->
如何定位Layout Files
通过在controller中使用layout进行声明就可以重载默认的layout模板的配置
# layout “standard”
使用app/views/layouts下的standard.html.erb模板
也可以对使用该模板的actions进行限制:
# layouts “standard”, :except => [:rss,:atom]
对于每个action在返回模板的时候也可以指定自己的layout
# render (:layout=>”layouts/simple”)
#render(:layout => false) 不适用模板