2013-07-11 57 views
5

我想用自定义页面替换ActiveAdmin中的默认仪表板页面。从ActiveAdmin中删除仪表板页面

这主要是因为我想要一个基于资源的页面,即使用ActiveAdmin.register而不是ActiveAdmin.register_page生成的页面。

我刚刚删除dashboard.rb文件,希望MyCustomAdmin这是一个常规(和工作)ActiveAdmin资源,将简单地代替仪表板。

但它并没有,而是我得到这个错误:

uninitialized constant Admin::DashboardController 

所以我改变了ActiveAdmin初始化并设置:

# config/initializers/active_admin.rb 

config.root_to = 'my_custom_admin#index' 

我也有MyCustomAdmin这样的:

# app/admin/my_custom_admin.rb 

ActiveAdmin.register MyCustomAdmin do 
    menu :priority => 1, :label => 'Report' 

    index do 
    column "column 1 title", :column1 
    end 

end 

在我的模型中,我也有:

# app/models/my_custom_admin.rb 

class MyCustomAdmin < ActiveRecord::Base 
end 

所以,问题是,当我尝试在localhost:3000/admin访问我的错误:

uninitialized constant Admin::MyCustomAdminController 

但如果我去localhost:3000/admin/my_custom_admin它工作得很好。

为什么localhost:3000/admin无法正常工作?

+0

退房二号答案的http://计算器。 com/questions/11087362/setting-root-page-to-activeadmin-default-login-page - 切换到您要使用的控制器/操作。 –

+0

这个好运气吗? – zeantsoi

+0

还不是一个好运气:-(。配置/初始化/ active_admin.rb的想法似乎是要走的路,但如果我设置config.root_to ='my_admin_class#index'我得到'未初始化的常量';如果我把(如建议)admin/my_admin_class#索引我得到和'unizialized常量Admin :: Admin' – AgostinoX

回答

12

活动管理员为您生成一个控制器。而且控制器是多元化的。

因此,在主动管理的初始化,你应该用复数形式:

config.root_to = 'my_custom_admins#index' 

这是解决方案。

它抱怨

uninitialized constant Admin::MyCustomAdminController 

,因为它已初始化为:

MyCustomAdminsController 

代替。

1

使用ActiveAdmin 0.5.0我能:

1)使页面比仪表板的默认ActiveAdmin页面等。

2)从菜单中删除仪表板选项卡。 (通过URL仍可访问)

添置配置/初始化/ active_admin.rb:

ActiveAdmin.setup do |config| 
... 
    # The default start page becomes SomethingElse 
    config.root_to = 'something_else#index' 
end 

module ActiveAdmin 
    module Dashboards 
    class << self 
     # Remove the dashboard tab from the menu 
     alias_method :original_add_to_menu, :add_to_menu 
     def add_to_menu(namespace, menu) 
     # empty 
     end 
    end 
    end 
end 
8

应用程序/管理/ dashboard.rb

套餐假隐藏仪表板按钮。

配置/初始化/ active_admin.rb

集是这样的:

config.root_to = '#实体索引'