从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不工作?

Active admin为您生成一个控制器。并且控制器是复数的

因此,在活动的admin初始值设定项中,您应该使用复数形式:

config.root_to = 'my_custom_admins#index'

这就是解决方案。

它抱怨

uninitialized constant Admin::MyCustomAdminController

因为它初始化的是:

MyCustomAdminsController

相反。

app/admin/dashboard.rb

将menu设置为false以隐藏仪表板按钮。

config/ininitializers/active_admin.rb

设置如下:

config.root_to="实体#索引"

使用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

最新更新