You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Importmaps为ActiveAdmin v4添加自定义JavaScript?

在ActiveAdmin v4中通过Import Maps添加自定义JS(以Chartkick为例)

ActiveAdmin v4已原生支持Import Maps,以下是通过该方式引入自定义JS(以Chartkick图表库为例)的完整步骤:

1. 配置Import Maps引入依赖

在项目根目录的config/importmap.rb中添加Chartkick及其依赖的映射:

pin "chartkick", to: "chartkick.js"
pin "Chart.bundle", to: "Chart.bundle.js" # Chartkick依赖的图表渲染库

执行Import Maps安装命令拉取依赖:

./bin/importmap install chartkick Chart.bundle

2. 创建ActiveAdmin自定义JS文件

在app/javascript/active_admin目录下创建自定义脚本文件(比如custom_charts.js),导入Chartkick并初始化:

import "chartkick"
import "Chart.bundle"

// 可选:添加自定义Chartkick配置或全局方法
document.addEventListener("DOMContentLoaded", function() {
  // 示例:给特定元素绑定图表
  const chartElement = document.getElementById("admin-dashboard-chart")
  if (chartElement) {
    new Chartkick.LineChart(chartElement, chartElement.dataset.chartData)
  }
})

3. 在ActiveAdmin中加载自定义JS

修改config/initializers/active_admin.rb,添加自定义JS的加载配置:

ActiveAdmin.setup do |config|
  # 其他配置...
  
  config.register_javascript "active_admin/custom_charts.js"
end

4. 在ActiveAdmin页面中使用Chartkick

在ActiveAdmin的页面(比如Dashboard或资源页面)中添加图表容器,并传入数据:

ActiveAdmin.register Dashboard do
  menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") }

  content title: proc{ I18n.t("active_admin.dashboard") } do
    div class: "blank_slate_container", id: "dashboard_default_message" do
      # 图表容器,通过data属性传递数据
      div id: "admin-dashboard-chart", data: {
        chart_data: {
          "2024-01": 100,
          "2024-02": 150,
          "2024-03": 200
        }
      }
    end
  end
end

内容的提问来源于stack exchange,提问作者thisismydesign

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:22:07