2 activeadmin的命名空间

我正在尝试在过去的4个小时内安装带有两个名称空间的activeadmin,但我没有运气。

我想要两个命名空间。 “admin”和“admin_unit”。

我会假设我有app / admin和app / admin_unit目录。

对于admin命名空间,我想使用默认的devise身份validation,对于“admin_unit”命名空间,我有一个我需要使用的current_user方法。

我已经尝试使用命名空间包装active_admin配置中的所有配置,并且我尝试手动创建文件等,但每次我遇到一些问题。

Activeadmin在过去的一年里发生了很大的变化,我很害怕我见过的一半指令已经过时了。 而且没有一个是完整的。 文档仅部分位于命名空间。

有没有人有从开始到结束安装这两个命名空间的一步一步的说明? 我非常感谢你的帮助!

编辑

当我去启动服务器(或在这种情况下我试图耙路线)时,我收到此错误:

Expected /app/active_admin/admin/dashboard.rb to define Admin::Dashboard (LoadError) 

dashboard.rb中有这个:

 ActiveAdmin.register_page "My Page", :namespace => :admin do content do para "Hello World" end end 

我也试过没有命名空间:

 ActiveAdmin.register_page "My Page" do content do para "Hello World" end end 

仅供参考我添加了一个“active_admin”目录,并将两个命名空间目录放在那里。 我将两者都添加到加载路径中(感谢您)。

此错误是否与新的仪表板页面有关? 我将研究下一步的工作方式。

多谢你们! 感谢您的工作Gregg,我现在已经在数十个应用程序上使用AA并且喜欢它!

编辑修复

好的,在上一期中,我发现从我创建的“active_admin”目录中取出两个activeadmin命名空间目录修复了问题。 不知道什么是行不通的……但是哦,我已经在这个问题上花了足够的周期,并准备继续前进。

希望能帮到别人..

您是否将app / admin_unit添加到active_admin的加载路径?

  config.load_paths = [File.expand_path('app/admin', Rails.root), File.expand_path('app/admin_unit', Rails.root)] 

这可以进入’config / initializers / active_admin.rb’这是必要的,因为active_admin注意不要多次加载资源

至于身份validation方法,这样的事情应该工作:

 config.namespace :admin_unit do |namespaced| namespaced.authentication_method = :current_user end 

但请注意,’authentication_method’和’current_user_method’是两种不同的设计设置(用于在控制器操作之前进行身份validation ,并分别返回当前用户)。 我只是指出这一点,因为我认为’current_user’是默认情况下(非activeadmin)设计调用返回登录用户的方法

放置文件的目录与命名空间的配置不同。 如果要添加Active Admin加载文件的新目录,请执行以下操作:

  config.load_paths = [File.expand_path('app/admin', Rails.root), File.expand_path('app/admin_unit', Rails.root)] 

现在您可以将文件放在app / admin_unit中,Active Admin将加载它们。 这对于放置这些文件的“命名空间”没有影响。

要设置资源的命名空间,只需将命名空间的名称传递给注册:

 ActiveAdmin.register SomeResource, :namespace => :admin_unit do # configuration end