2013-09-24 4 views
14

У меня есть приложение rails 3 с драгоценным камнем ActiveAdmin. Моя цель - сделать персонализированный рендеринг контроллера в пользовательских представлениях, которые сохраняют его.Пользовательские представления 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

Не работает для меня. Получите ошибку: 'undefined local variable или method '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

Смежные вопросы