论坛首页 编程语言技术论坛

怎样使不同的controller使用同一个 layouts模板?

浏览 3435 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-20  
资料上面大都是针对一个 controller来讲解的layouts布局模板,就是同一个controller的不同方法之间跳转他们能够使用layouts目录下的同一个布局文件来规划复合页面的布局,但是如果是不同的 controller可以做到使用同一个layout模板么? 是不是应该在请求中增加选择布局的参数?
   发表时间:2007-04-20  
《ruby cookbook》 Recipe15.3 Creating a Layout for Your Header and Footer. (page 563)

摘要:
一、 controller中声明
layout 'xxx'

二、 controller中声明
layout :yyy
def yyy
  return 'layout_name'
end

三、action中声明
render :layout => 'xxx'

四、 上述均无时的推导惯例:
controller名.rhtml
controller父类名.rhtml
...
(因为所有Controller继承自ApplicationController,所以layouts/application.rhtml生效是遵循惯例的)

另参考《rails book》中文版 17.9布局与组件(page 369)

0 请登录后投票
   发表时间:2007-04-20  
谢谢,是说如果我把 application.rhtml 作为布局文件,所有的controller都会生效? 在程序中声明似乎硬编码了,还是你说得那个 :controller名.rhtml
controller父类名.rhtml
这种方式,是说明 layout可以继承么。
推荐的两本数网上有免费下载可以提供?
0 请登录后投票
   发表时间:2007-04-20  
lyo 写道
谢谢,是说如果我把 application.rhtml 作为布局文件,所有的controller都会生效? 在程序中声明似乎硬编码了,还是你说得那个 :controller名.rhtml
controller父类名.rhtml
这种方式,是说明 layout可以继承么。
推荐的两本数网上有免费下载可以提供?
代码即配置。
假如是AbcController,那么如果有views/layouts/abc.rhtml就用它,没有的话就用views/layouts/application.rhtml。
因为 class AbcController < ApplicationController
如果整个站点只用一个layout,那就在layouts下留application.rhtml,其它的在运行generate scaffold生成后手工删掉。
还是纸版的书好,够系统条理,能节省很多时间呢...
0 请登录后投票
   发表时间:2007-04-20  
是用的命名规则,挺方便的。  谢谢
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics