2012-07-17 59 views
0

如何在activeAdmin控制器中设置ActiveAdmin自定义页面中“语义表单”标记的url以部分处理collection_action?ActiveAdmin收集操作路径

我:

item.rb的

ActiveAdmin.register Item, :as => "MyItems" do 
    menu :parent => "My", :label => "My Items" 

    collection_action :add_me, :method => :post do 
    redirect_to "/" # just for testing 
    end 
end 

自定义页面ActiveAdmin控制器

ActiveAdmin.register_page "MyItemsCustomPage" do 
    content do 
    @items = Item.all 
    render "item", { :items => @items } 
    end 
end 

_item.html.erb(自定义页面)

<%= semantic_form_for :item_add_me, :url => add_me_admin_items_path do |f| %> 
    <%= f.buttons :commit %> 
<% end %> 

而且去了习俗之后页面我有错误:

undefined local variable or method `add_me_admin_items_path' for #<#<Class:0x00000006c3ff40>:0x00000005f8bd80> 

顺便说一句,为admin_items_path语义形式可以很好地用于项目添加行为。

PS。如果我将url更改为/admin/items/add_me并将:method设置为:post,我得到路由错误:No route matches [POST] "/admin/items/add_me"

回答

1

发现此问题。

在item.rb的去除:as => "MyItems"后:

ActiveAdmin.register Item do 

所有工作正常。

0

这里的问题是,ActiveAdmin.register Item, as: "MyItems"实际上将所有路由重命名为my_items而不是所有方法名称中的my_item。因此,在您的表单中,您可以使用add_me_admin_my_items_path而不是使用add_me_admin_items_path