我正在尝试创建一个自定义操作,允许创建新记录(除了默认的新建和创建操作之外)。
我只是通过 action_item
添加了一个新的成员操作和一个链接。链接生成已失败,没有路由匹配 {:action=>"new_photo_order", :controller=>"admin/orders"} 缺少必需的键:[:id]
。
action_item :new_photo_order, only: :index do
link_to 'New photo order', new_photo_order_admin_order_path
end
member_action :new_photo_order, method: [:get, :post] do
if request.post?
# create resource
else
# render template with form
end
end
我找不到任何解决方案,所以我想问一下您应该如何添加允许添加新记录的自定义操作?
最佳答案
改变这个
member_action :new_photo_order, method: [:get, :post] do
if request.post?
# create resource
else
# render template with form
end
end
到此
collection_action :new_photo_order, method: [:get, :post] do
if request.post?
# create resource
else
# render template with form
end
end
因为当我们定义 member_action
时,它定义了一个类似于 orders/:id/new_photo_order
的路由,它需要 id
。或者如果您想使用member_action
,您需要在action_item中传递订单ID,如下所示
action_item :new_photo_order, only: :index do
link_to 'New photo order', new_photo_order_admin_order_path(order.id)
end
关于ruby-on-rails - ActiveAdmin - 创建新记录的自定义操作(缺少必需的 key : :id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52986277/