从ActiveAdmin中删除仪表板页面

9
我想用自定义页面替换ActiveAdmin中的默认仪表板页面。
这主要是因为我想要一个基于资源的页面,即使用ActiveAdmin.register生成的页面,而不是使用ActiveAdmin.register_page生成的页面。
我只是删除了dashboard.rb文件,希望一个常规(且工作正常)的ActiveAdmin资源MyCustomAdmin会取代仪表板。
但它没有,反而出现了这个错误:
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 不能正常工作?


请查看第二个答案 https://dev59.com/BGgu5IYBdhLWcg3wxZzd -- 更改为您想要使用的控制器/操作。 - Jesse Wolgamott
还不是很幸运 :-(。修改 config/initializer/active_admin.rb 的想法似乎是正确的方法,但是如果我设置 config.root_to = 'my_admin_class#index',我会得到一个“未初始化的常量”错误;如果我按照建议放置 admin/my_admin_class#index,我会得到一个“未初始化的常量 Admin::Admin”的错误。 - AgostinoX
3个回答

15

Active Admin会为您生成一个控制器,而该控制器是复数形式的。

因此,在Active Admin的初始化设置中,您应该使用复数形式:

config.root_to = 'my_custom_admins#index'

这就是解决方案。

它抱怨说

uninitialized constant Admin::MyCustomAdminController

因为它初始化的内容是:

MyCustomAdminsController

改为其他选项。


12
app/admin/dashboard.rb 中设置 menu 为 false 可以隐藏仪表板按钮。
config/initializers/active_admin.rb 中,设置像这样的内容:
config.root_to = 'entities#index'

1
使用ActiveAdmin 0.5.0,我能够做到以下几点:
1)将除了仪表板之外的页面设为默认的ActiveAdmin页面。
2)从菜单中移除仪表板选项卡。(但仍可通过URL访问)
在config/initializers/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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接