我在ActiveAdmin中有一个名为statistics的自定义页面,我想在其中显示包含数据库数据的图表。
现在我使用Gon gem并希望通过实例变量将数据传递到我的自定义页面。
通常您会将gon行添加到索引操作
class ProductsController < ApplicationController
def index
gon.rabl "app/views/products/index.json.rabl", as: "products"
end
end
但我的自定义页面的活动管理员中没有控制器。我该怎么做? 或者我是否必须通过仪表板执行此操作?
答案 0 :(得分: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
P.S。:如果您不想更改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
答案 1 :(得分:0)
您的自定义页面是从“资源”控制器呈现的,即来自您在应用程序中创建的资源吗?如果是,那么这就是控制器本身。您可以在控制器中定义相同的任何自定义操作。 并且您可以使用相同的策略将数据传递到页面,就像使用部分内容一样,即使用:locals