我在 ActiveAdmin 中有一个名为统计信息的自定义页面,我想在其中显示包含数据库数据的图表。
现在我使用了 Gon gem并希望通过实例变量将数据传递到我的自定义页面。
通常你会将 gon 行添加到索引操作中
class ProductsController < ApplicationController
def index
gon.rabl "app/views/products/index.json.rabl", as: "products"
end
end
但是我的自定义页面在事件管理中没有 Controller 。我应该怎么做? 还是我必须通过仪表板执行此操作?
最佳答案
在事件管理中有 Controller ,尽管如此你不能将实例变量传递给 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
关于ruby-on-rails - 事件管理员 : pass instance variable for custom page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917108/