2013-09-24 33 views
14

我有一個帶有ActiveAdmin gem的rails 3應用程序。我的目標是在自定義視圖中進行自定義控制器渲染,以保持其佈局。保留ActiveAdmin佈局的ActiveAdmin自定義視圖

我成功地使自定義控制器自定義視圖渲染與此代碼:

pages.rb:

ActiveAdmin.register_page 'Pages' do 

    content only: :index do 
    render 'index' 
    end 

    content only: :edit do 
    render partial: 'edit' 
    end 

    controller do 
    def index 
     @search = Page.includes(:translations).where("page_translations.locale='fr'").metasearch(params[:search]) 
     @pages = @search.page params[:page] 
    end 

    def edit 
     @page = Page.find params[:id] 
    end 
    end 
end 

再舉例來說,我的index.html.erb文件:

<h1>Pages</h1> 
<%= form_for @search, :url => admin_pages_path, :html => {:method => :get, :class => "form-inline" } do |f| %> 
    <%= f.text_field :translations_name_contains , :class => "search-query input-medium focused" %> 
    <%= f.submit("Search", :class => "btn btn-primary") %> 
<% end %> 

<table> 
    <thead> 
    <tr> 
     <th><%= sort_link @search, :translations_name, "Titre" %></th> 
     <th><%= sort_link @search, :permalink, "Permalien" %></th> 
     <th>Actions</th> 
    </tr> 
    </thead> 
    <tbody> 
    <% @pages.each do |page| %> 
     <tr> 
     <td><%= page.name %></td> 
     <td><%= page.permalink %></td> 
     <td><%= link_to("Update",edit_admin_page_path(page)) %></td> 
     </tr> 
    <% end %> 
    </tbody> 
</table> 

有沒有辦法保持ActiveAdmin佈局?

回答

7

問題已解決。只需添加layout 'active_admin'到您的代碼:

controller do 
    layout 'active_admin' # <-- here 
    def index 
    @search = Page.includes(:translations).where("page_translations.locale='fr'").metasearch(params[:search]) 
    @pages = @search.page params[:page] 
    end 

    def edit 
    @page = Page.find params[:id] 
    end 
end 
+3

這不工作了... – MFrazier

+2

@MFrazier你能解釋或鏈接到原因嗎? – Pistos

+2

不適合我。獲取錯誤:未定義的局部變量或方法'view_factory'爲:Arbre :: Context' – WarLord

3

代碼是在這裏:的模型不太觀點與管理佈局

ActiveAdmin.register_page "myname" do 

    content only: :index do 
    render 'index' 
    end 

    controller do 
    def index 
    end 
    end 
end 

然後在應用程序/視圖/管理/ MYNAME/添加意見_index.html.erb