如何在activeAdmin控制器中的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>
btw,admin_items_path
的语义形式适用于项目添加操作。
PS。如果我将网址更改为/admin/items/add_me
并将:method
设置为:post
,则会收到路由错误:No route matches [POST] "/admin/items/add_me"
答案 0 :(得分:1)
发现问题。
删除item.rb中的:as => "MyItems"
:
ActiveAdmin.register Item do
一切正常。
答案 1 :(得分:0)
这里的问题是ActiveAdmin.register Item, as: "MyItems"
实际上在所有方法名称中将所有路由重命名为my_items
而不是my_item
。因此,在您的表单中,您可以使用add_me_admin_items_path
。
add_me_admin_my_items_path