2011-05-17 19 views
13

我有一个管理员类(或模块?)如何为类或模块中的所有控制器设置特定的布局。 (导轨3)

class Admin::PostsController < ApplicationController 
    layout 'admin' 
    # controller methods... 
end 

class Admin::CommentsController < ApplicationController 
    layout 'admin' 
    # controller methods... 
end 

如何可以在一个地方定义布局用于在管理类这些控制器根据以下控制器?我是否需要为Admin类创建一个新文件并在那里定义它?我有一种感觉,这是这样的一些事情(尝试但没有工作)。

class Admin < ApplicationController 
layout 'admin' 
end 

当前所有作用于管理类的控制器位于'app/controllers/admin /'。如果我需要创建Admin类文件,它应该在该文件夹中还是在上面的文件夹中?或者这个解决方案超级简单,我是否想过它?

回答

26

尝试创建一个BaseController类,像这样的,然后扩展您的其他控制器使用它:

class Admin::BaseController < ApplicationController 
    layout 'admin' 
end 

然后你会:

class Admin::PostsController < Admin::BaseController 
    # controller methods... 
end 
相关问题