2010-02-27 39 views
5

这是在我的理解,我可以通过将指定某些控制器的布局在Ruby on Rails的

layout 'mylayout' 

在控制文件中指定的控制器的布局。我进一步明白,我可以指定布局将被调用的某些动作,其格式为:only:except。 布局'mylayout',:: => [:指数,新]

我想知道是,我可以把layout 'mylayout'在我的应用程序控制器,并指定要渲染只能用于一些特定的控制器像:only_controller:except_controller,还是我来指定layout 'mylayout'我希望它被渲染的每个控制器中?

原因是我有几个控制器负责我网站的管理部分,我想为他们设置不同的布局。

回答

2

管理员控制器是否继承AdminController并创建admin.html.erb布局。这样,您的管理部分的所有控制器都将具有此布局。

+0

但我不需要一个实际的物理管理控制器 - 它不存在。如果我创建它 - 是否必须有数据库后端? – 2010-02-27 18:15:05

+0

控制器与数据库无关:)没有办法将它想象为管理控制器的抽象基类。它甚至会让事情变得更清楚,因为当你看到一个控制器从'AdminController'继承时,你会立即知道它是来自管理部分的控制器。另外,很可能你会需要一些普通的'before_filter',而一个基类将成为他们的理想场所。 – 2010-02-27 19:31:48

+0

非常感谢你! – 2010-03-01 02:47:01