Active Admin:传递自定义页面的实例变量

Mex*_*xer 0 controller ruby-on-rails activeadmin

我在ActiveAdmin中有一个名为statistics的自定义页面,我想在其中显示包含数据库数据的图表.

现在我使用了Gon gem并希望通过实例变量将数据传递给我的自定义页面.

通常,您会将gon行添加到索引操作中

class ProductsController < ApplicationController
  def index
    gon.rabl "app/views/products/index.json.rabl", as: "products"
  end
end
Run Code Online (Sandbox Code Playgroud)

但是我的自定义页面的活动管理员中没有控制器.我该怎么做?或者我是否必须通过仪表板执行此操作?

Jie*_*rat 9

在主动管理员中有控制器,尽管如此,你无法将实例变量传递给arbre部分.但你可以使用params哈希:

ActiveAdmin.register_page 'SomePage' do
  menu :label => 'Menu label'

  controller do
    def index
      params[:some_var] = 'value_of_some_var'
    end
  end

  content 'Page title' do
    h2 "This is some_var: #{params[:some_var]}"
  end
end
Run Code Online (Sandbox Code Playgroud)

PS:如果您不想更改params,则存储所有实例变量@arbre_context.assigns.您可能也喜欢:

ActiveAdmin.register_page 'SomePage' do
  menu :label => 'Menu label'

  controller do
    def index
      @some_var = 'value_of_some_var'
    end
  end

  content 'Page title' do
    h2 "This is some_var: #{@arbre_context.assigns[:some_var]}"
  end
end
Run Code Online (Sandbox Code Playgroud)