控制器进入完全不同的目录

时间:2016-11-23 21:02:23

标签: ruby-on-rails ruby-on-rails-5 controllers

我正在尝试为我的rails应用程序构建一个管理面板,但是希望让我的管理控制器远离我的其他控制器。无论如何,我的app文件夹中都有一个admin文件夹,其中包含仅用于管理员的控制器。

提前致谢。

4 个答案:

答案 0 :(得分:4)

是的,当然。

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

答案 1 :(得分:1)

是的,您可以通过在管理模块下命名控制器来实现此目的。

最简单的设置方法是使用rails生成器,并在资源前加上" admin":

rails generate controller admin/user

输入rails g controller以获取具体帮助。

这是指南中的一个页面,其中包含更多信息:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

答案 2 :(得分:0)

如果您希望将管理员完全分开,可以使用引擎。要生成引擎,请执行以下操作:

rails plugin new admin --mountable

然后在主应用程序的路径文件中,您可以使用以下命令安装引擎:

mount Admin::Engine => "/admin"

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

答案 3 :(得分:0)

这很简单,通常将它们放在Map中是有意义的,但如果使用它,则需要使用命名空间。然后Rails将自动加载这些类。

最好为每个命名空间创建一个ApplicationController(我称之为基本控制器),如下所示:

app/controllers/admin

这是一个exapmle控制器:

module Admin
  class BaseController < ApplicationController

  end
end