【问题标题】:RailsAdmin dashboard customizationRailsAdmin 仪表板自定义
【发布时间】:2014-08-26 09:14:37
【问题描述】:

我想在我的 RailsAdmin 仪表板上显示一些指标 我使用自定义 sql 查询从数据库中获取数据。

如何更改仪表板视图以显示该数据?

我可以自定义app/views/rails_admin/main/dashboard.html.erb app/views/rails_admin/main/dashboard.html.haml,但是我在哪里定义查询结果

@result = Metric.data

谢谢

【问题讨论】:

  • dpaluy,有没有想过这个问题?
  • @RianRainey 我迁移到 ActiveAdmin(因为不同的原因)。

标签: ruby-on-rails metrics rails-admin


【解决方案1】:

您可以根据需要添加任意数量的仪表板

Rails 管理员配置

RailsAdmin.config do |config|
config.actions do
    dashboard
    require_relative '../../lib/rails_admin/config/actions/dashboard'

    root :admin_dashboard
    root :teacher_dashboard
    root :director_dashboard
end

访问默认仪表板时重定向到特定仪表板

/lib/rails_admin/config/actions/dashborad.rb

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'

module RailsAdmin
  module Config
    module Actions
      class Dashboard < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)
        register_instance_option :root? do
          true
        end
        register_instance_option :breadcrumb_parent do
        end
        register_instance_option :link_icon do
          'icon-hand-up'
        end
        register_instance_option :controller do
          proc do
            if current_user.instance_of? Teacher
              redirect_to '/admin/teacher_dashboard'
            elsif current_user.instance_of? Director
              redirect_to '/admin/campus_director_dashboard'
            elsif current_user.instance_of? Admin
              redirect_to '/admin/admin_dashboard'
            end
          end
        end
      end
    end
  end
end

管理仪表板控制器示例

/lib/rails_admin/config/actions/admin_dashborad.rb

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'
module RailsAdmin
  module Config
    module Actions
      class AdminDashboard < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)
        register_instance_option :root? do
          true
        end
        register_instance_option :breadcrumb_parent do
        end
        register_instance_option :link_icon do
          'icon-hand-up'
        end
        register_instance_option :controller do
          proc do
            render action: @action.template_name
          end
        end
      end
    end
  end
end

【讨论】:

    【解决方案2】:

    app/admin/dashboard.rb 文件中创建一个index 方法。然后在那里获取结果。 经验:

    index do
        # renders app/views/admin/posts/_some_partial.html.erb
        @category = Category.includes(:products).find params[:id]
        render partial: "category_attributes"
      end
    

    这里是那个索引方法的视图。

    【讨论】:

    • 我猜它应该在 Dashboard 类中。正确的?我尝试使用这个github.com/sferik/rails_admin/blob/master/lib/rails_admin/…,但它没有用。感谢您的帮助
    • @dpaluy,在您的应用程序目录中,您将在 app 文件夹下找到 admin 文件夹。该管理文件夹上有一个名为dashboard.rb 的类。您必须在该文件上编写此代码。
    • RailsAdmin 中没有这样的文件。 Dashboard.rb 文件存在于 ActiveAdmin 中
    • @dpaluy,对不起。我猜你正在使用 Active admin gem。您正在使用 rails_admin gem。 :(
    • 我以前也使用 ActiveAdmin。但在当前项目中,我必须支持 RailsAdmin :-)
    猜你喜欢
    • 2020-10-23
    • 2015-03-29
    • 2020-07-07
    • 1970-01-01
    • 2017-12-31
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    相关资源
    最近更新 更多