2017-06-09 42 views
1

我需要將我的活動管理頁面嵌入到父應用程序中。 活動管理頁面將顯示在iframe中,並且如果URL查詢參數embedded = true,我需要刪除默認索引上的頁眉和頁腳,顯示和編輯頁面。在rails上的活動管理中條件刪除標題5

我繼續像這樣在我的主動管理頁面:

ActiveAdmin.register Followup, as: 'Followup_affectation' do 

    controller do 
    def setLayout 
     if params['embedded'] == 'true' 
      @layout = false 
     else 
      @layout = 'active_admin' 
     end 
     end 
end 

而且在一些自定義操作

  render template: "admin/followups/mytemplate.html.haml", layout: @layout 

但我想這樣做索引。

我試圖

def index 
    render :index, layout: @layout 
end 

def index 
    super 
    render :index, layout: @layout 
end 

我的索引定義是真的很經典:

index do 
     id_column 
     column :step 
     column :cycle 
     column :tag_rfid 
     column :quoteline 
     column :product_name 
     column :location 
     column :active 
     actions 
    end 

在此先感謝您的幫助

+1

你可以做類似'before_action:setLayout的,只有:[:指數:展示,編輯]' – Richlewis

+0

@Richlewis感謝您的幫助,但問題在於我如何從渲染中移除佈局。 在這種情況下,該函數的作用域不起作用 – Jaycreation

回答

1

我終於找到一個解決方案。 1 - 創建應用程序/管理header.rb/

module ActiveAdmin 
    module Views 
    class Header < Component 

     def build(namespace, menu) 
     super(id: "header") 

     #add a class hide wich diplay none on the menu 
     if params['embedded'] == 'true' 
      super(class: "hide") 
     end 
     @namespace = namespace 
     @menu = menu 
     @utility_menu = @namespace.fetch_menu(:utility_navigation) 

     build_site_title 
     build_global_navigation 
     build_utility_navigation 
     end 


     def build_site_title 
     insert_tag view_factory.site_title, @namespace 
     end 

     def build_global_navigation 
     #do not insert tag if params embedded is true 
     insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs' unless params['embedded'] == 'true' 
     end 

     def build_utility_navigation 
     insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs' 
     end 

    end 
    end 
end