8

我想用自定义页面替换 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不工作?

4

3 回答 3

13

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

因此,在活动管理员初始化程序中,您应该使用复数形式:

config.root_to = 'my_custom_admins#index'

这就是解决方案。

它抱怨说

uninitialized constant Admin::MyCustomAdminController

因为它初始化的是:

MyCustomAdminsController

反而。

于 2013-07-18T09:25:49.830 回答
11

app/admin/dashboard.rb

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

config/initializers/active_admin.rb

设置这样的东西:

config.root_to = '实体#index'

于 2014-07-22T04:54:39.613 回答
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
于 2013-09-10T20:52:32.293 回答