2014-10-07 70 views
2

我對項目使用ActiveAdmin。我有和我有一個自定義窗體的部分。我希望能夠使這個自定義窗體時,在用戶點擊按鈕,所以這是我做過什麼:在ActiveAdmin的「自定義頁面」中呈現自定義編輯部分

ActiveAdmin.register_page "Messages" do 

    menu priority: 5 
    welcome_message = Template.first 

    page_action :update, method: :put do 
     #update code 
    end 

    page_action :edit, :method => :get do 
     render partial:'custom_form', locals: { settings: welcome_message } 
    end 

    action_item do 
     link_to "Edit", admin_welcome_messages_edit_path, :method => :get 
    end 

    content do 
     render text: "HI" 
    end 
    end 

這工作,但問題是,我的形式得到不ActiveAdmin的佈局和樣式呈現它只是將我的custom_form顯示爲一個乾淨的html。

如果我在content do ... end中渲染我的custom_form它確實有效,但我需要這個來展示不同的東西。

任何幫助?我不知道還有什麼可以嘗試的,我已經達到了谷歌的前3頁沒有成功!

回答

3

我沒有找到答案,但我發現一個很好的解決方法,看起來不錯。

action_item我有一個鏈接admin_welcome_messages_path這是主視圖,如果我正在編輯添加一個參數來顯示窗體而不是正文。

希望它有助於某人!

ActiveAdmin.register_page "Messages" do 

    menu priority: 5 
    welcome_message = Template.first 

    page_action :update, method: :put do 
     #update code 
    end 

    action_item do 
     link_to "Edit", admin_welcome_messages_path(edit: true), :method => :get 
    end 

    content do 
     if params["edit"] == "true" 
     render partial:'form', locals: { settings: welcome_message } 
     else 
     render partial:'body' 
     end 
    end 
    end 
0

向渲染調用添加布局選項。

render partial:'custom_form', layout: 'active_admin', locals: { settings: welcome_message } 
+1

這沒有奏效,它說它找不到佈局。 – Andres 2014-10-08 12:30:47

3

一種老問題,但我有同樣的問題,這解決了它對我來說。

render partial: "name_of_your_partial", layout: "active_admin" 

沒有爲我工作,所以我只是改變了我的部分成模板。

render: "name_of_your_template", layout: "active_admin" 

現在正在顯示activeadmin佈局。

0

確定要使用哪種佈局。

  1. 如果我們呈現一個標準的主動管理行動,我們要佈局(假) ,因爲這些行動基本頁面的子類(實現 所有所需的佈局代碼)
  2. 如果我們呈現自定義操作,我們將使用active_admin佈局,以便用戶可以在Active Admin中呈現任何模板。

https://github.com/activeadmin/activeadmin/commit/ce0927661c5991cc857306363c402ef9e283cc42

# this would automatically render the custom_edit.html.erb view 
page_action :custom_edit do 
end 

action_item do 
    link_to "Custom Edit", admin_welcome_messages_custom_edit_path 
end 
0

我知道這一個老問題,但下面爲我工作了我的Ruby on Rails應用程序:

裏面你your_custom_page.rb文件執行以下操作

content do 
    render 'partial_name' 
end 

並將_partial_name.erb在​​

您的部分現在應該呈現在該活動管理頁面上。