2012-04-11 90 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中[:范围]