从ActiveAdmin中删除仪表板页面

时间:2013-07-11 15:14:58

标签: ruby-on-rails 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无效?

3 个答案:

答案 0 :(得分:12)

Active admin为您生成一个控制器。并且控制器是多元化的。

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

config.root_to = 'my_custom_admins#index'

这就是解决方案。

它抱怨

uninitialized constant Admin::MyCustomAdminController

因为它初始化的是:

MyCustomAdminsController

代替。

答案 1 :(得分:10)

app / admin / dashboard.rb

设置菜单false以隐藏仪表板按钮。

config / initializers / active_admin.rb

设置如下:

config.root_to =&#39; entities #index&#39;

答案 2 :(得分:1)

使用ActiveAdmin 0.5.0我能够:

1)将仪表板以外的页面设为默认的ActiveAdmin页面。

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

添加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