2013-09-24 11 views
14

Mam aplikację rails 3 z klejnotem ActiveAdmin. Moim celem jest uczynienie niestandardowego kontrolera renderowaniem w niestandardowych widokach, które zachowują układ.Widoki niestandardowe ActiveAdmin, które zachowują układ ActiveAdmin

udało mi się zrobić kontroler niestandardową renderowanie w widokach niestandardowych z tym kodem:

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 

I na przykład moja index.html.erb file:

<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> 

Czy istnieje sposób na utrzymanie układu ActiveAdmin?

Odpowiedz

7

Problem rozwiązany. Wystarczy dodać layout 'active_admin' do kodu:

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

To już nie działa ... – MFrazier

+2

@MFrazier Czy możesz wyjaśnić lub link do dlaczego? – Pistos

+2

Nie działa dla mnie. Wystąpił błąd: 'niezdefiniowana lokalna zmienna lub metoda 'view_factory' dla: Arbre :: Context' – WarLord

3

kod jest tutaj: dla modelu mniej widok z układem administratora

ActiveAdmin.register_page "myname" do 

    content only: :index do 
    render 'index' 
    end 

    controller do 
    def index 
    end 
    end 
end 

Następnie dodać widoki pod app/views/admin/myname/ jak _index.html.erb