2013-03-18 57 views
5

形式使用ActiveAdmin(0.5.1),我想提出多種不同的形式來創建一個對象,並保存到我的數據庫。我試圖通過使用ActiveAdmin.register_page來做到這一點,但我在創建表單時遇到了麻煩。看起來,在使用register_page時,您不會得到與調用register時相同的form方法。下面的代碼:主動管理創造register_page

ActiveAdmin.register_page "New Object" do 
    content do 
    para "Here you can create new objects!" 
    para "This content will be replaced with links to the specialized forms" 
    end 
end 

而對於形式之一代碼:

ActiveAdmin.register_page "Type 1" do 
    menu :label => "Type 1", :parent => "New Object" 

    content do 
    panel "Attributes" do 
     form do |f| 
     f.input :color 
     f.input :size 
    end 
    end 
end 

但是這種形式不會以任何可行的方式呈現。還有f.inputs以及許多其他方法,您可以在示例中看到(如this)不起作用。是否可以使用ActiveAdmin#register_page來製作功能完整的表格?

回答

2

要在非標準上下文(即不是資源寄存器)中創建表單,您需要使用formtastic的semantic_form_for並指定:url:builder選項。

content do 
    semantic_form_for MyObject.new, :url => admin_my_objects_url, :builder => ActiveAdmin::FormBuilder do |f| 
    f.inputs "My Object" do 
     f.input :color 
     f.input :size 
    end 
    f.actions 
    end 
end 

這將爲您提供一個標有「我的對象」的面板,其中包含您的對象的表單,並在其下方有一個提交按鈕。

+0

但如果你給它一個現有的對象。字段不會自動填充對象的屬性。實際上,我還沒有找到辦法。 – shigazaru 2013-05-29 06:55:18