2012-06-06 33 views
0

我在ActiveAdmin中有一個自定義頁面,叫做統計,我想用數據庫中的數據顯示圖表。Active Admin:傳遞自定義頁面的實例變量

現在我使用了Gon gem並希望通過實例變量將數據傳遞到我的自定義頁面。

一般你會在坤行添加到索引操作

class ProductsController < ApplicationController 
    def index 
    gon.rabl "app/views/products/index.json.rabl", as: "products" 
    end 
end 

但是,在活躍的管理員就無法控制我的自定義頁面。我應該怎麼做? 還是必須通過儀表板完成此操作?

回答

0

您的自定義頁面是否從「資源」控制器呈現,即來自您在應用程序中創建的資源?如果是,那麼這是一個控制器本身。您可以在控制器中定義相同的任何自定義操作。 您可以使用相同的策略將數據傳遞到您的頁面,就像您通過使用:locals

7

活動管理員中存在控制器,儘管如此,您無法將實例變量傳遞給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