2014-01-16 34 views
2

我試圖將窗體添加到資源的顯示頁面。表單工作得很好,但它只會顯示,如果我把它包裝在一個panel聲明,這導致面板內的面板。沒有面板的顯示頁面上的ActiveAdmin窗體

任何想法如何讓表單不顯示在panel中?

這是我現在所擁有的代碼:

show do |ad| 
    ... 

    panel "Foobar" do 
     semantic_form_for [:admin, resource, resource.reactions.build], builder: ActiveAdmin::FormBuilder do |f| 
     f.inputs "New Reaction" do 
      f.input :title 
      f.input :content 
     end 
     f.actions 
     end 
    end 
end 

謝謝!

回答

3

panel的替代方案是使用div

根本問題是混合Arbre和非Arbre組件;這裏的組件是panelsemantic_form_for。此更改的工作原因是,當它是一個字符串時,Arbre數據塊中的最後一個返回值被封裝在text_node中。在這種情況下,表單以字符串形式輸出,然後在div內包裝爲text_node,該表格呈現該表單。有關更多信息,請參閱Arbre的Element source

show do |ad| 
    div do # <- Note the div 
    semantic_form_for [:admin, resource, resource.reactions.build], builder: ActiveAdmin::FormBuilder do |f| 
     f.inputs "New Reaction" do 
     f.input :title 
     f.input :content 
     end 
     f.actions 
    end 
    end 
end 
+0

謝謝你的解釋。 –