2012-04-11 98 views
0

我需要一個簡單的表單來添加一系列電話號碼。在活動管理員中創建自定義表格

ActiveAdmin.register Did do 
    # .. 
    collection_action :add_range, :method => :get do 
    end 
    collection_action :add_range, :method => :post do 
    end 
end 

<%= semantic_form_for [:admin, :dids, :add_range] do |f| %> 
    <%= f.inputs :start, :end %> 
    <%= f.buttons :commit %> 
<% end %> 

上述失敗的「未定義方法`model_name'的符號:類」。

如何定義這種不直接使用對象的表單?

回答

0

我很確定你需要在semantic_form_for的電話中有一個模型。由於您的操作是集合操作,因此它不是針對特定的DID採取行動,因此您嘗試創建的是什麼模式?範圍模型?如果是這樣的話你應該有類似:

<%= semantic_form_for [:admin, @range] do |f| %> 
    <% ... %> 
    <%= f.buttons :commit 
<% end %> 

當然@range應該被初始化爲控制器Range.new

編輯:實現了一點遲到,你不想使用一個對象。在documentation它表明您可以使用semantic_form_for :login,但它可能不適用於嵌套/名稱空間格式。您可能必須指定url:url => admin_add_range_dids_path或類似的東西。只需檢查rake routes即可找到正確的命名。不確定該模型是由ActiveAdmin還是Formtastic調用,因此仍然無法工作,但值得嘗試。

1

剛試過,這將工作:

<%= semantic_form_for :range, :url => add_range_admin_dids_path do |f| %> 
    <%= f.inputs :start, :end %> 
    <%= f.buttons :commit %> 
<% end %> 

然後找到PARAMS公佈params中[:範圍]