2016-11-23 159 views
-1

我试图建立一个管理面板到我的导轨应用程序,但想让我的管理控制器远离我的其他控制器。无论如何,我可以有一个管理文件夹在我的应用程序文件夹,其中包含管理员的东西只是控制器。控制器到完全不同的目录

在此先感谢。

回答

4

是的,当然。

您可以将所有与管理相关的控制器放在app/controllers/admin/目录中。

1

是的,你可以通过在管理模块下命名你的控制器来做到这一点。

设置它的最简单方法是使用Rails生成,并以“admin”的前缀,你的资源:

rails generate controller admin/user 

类型rails g controller具体帮助。

下面是更多的信息引导的页面:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

+0

感谢您的回答,但我希望我的控制器目录完全可以在控制器目录之外,所以/ app/admin而不是/ app/controllers/admin –

+0

您可以使用引擎:http://guides.rubyonrails.org/engines.html – mysmallidea

0

如果你想保持你的管理完全分开,你可以使用一个引擎。要生成引擎,这样做:

rails plugin new admin --mountable 

然后在你的主应用程序的路线文件,你可以安装引擎:

mount Admin::Engine => "/admin" 

关于引擎完整的详细信息,请参阅http://guides.rubyonrails.org/engines.html

0

这很简单,通常将它们放在app/controllers/admin之内是有意义的,但如果使用这个,则需要使用命名空间。 Rails会自动加载这些类。

这是一个很好的做法,使每个命名空间的ApplicationController(我叫它基本控制器)是这样的:

module Admin 
    class BaseController < ApplicationController 

    end 
end 

,这里是一个exapmle控制器:

module Admin 
    class ExampleController < Admin::BaseController 
    def example 
    end 
    end 
end