正在跳过CollectionAction路由,将操作视为ID

时间:2013-03-21 12:38:01

标签: activeadmin

我正在尝试在ActiveAdmin中创建collection_action,这允许我导入CSV文件并从中生成订阅者。我希望能够点击action_item链接并转到我输入CSV文件的表单,然后使用它进行处理。

这是我到目前为止所做的:

ActiveAdmin.register Subscriber do

collection_action :import_csv, :method => :post do 
    render "import_csv"
end         

action_item do 
    link_to "Import from CSV", import_csv_admin_subscribers_path
end

此视图也已创建,此刻只是空白。我重新启动了rails服务器,rake routes输出:

import_csv_admin_subscribers POST       /admin/subscribers/import_csv(.:format)       admin/subscribers#import_csv
batch_action_admin_subscribers POST       /admin/subscribers/batch_action(.:format)     admin/subscribers#batch_action
             admin_subscribers GET        /admin/subscribers(.:format)                  admin/subscribers#index
                               POST       /admin/subscribers(.:format)                  admin/subscribers#create
          new_admin_subscriber GET        /admin/subscribers/new(.:format)              admin/subscribers#new
         edit_admin_subscriber GET        /admin/subscribers/:id/edit(.:format)         admin/subscribers#edit
              admin_subscriber GET        /admin/subscribers/:id(.:format)              admin/subscribers#show
                               PUT        /admin/subscribers/:id(.:format)              admin/subscribers#update
                               DELETE     /admin/subscribers/:id(.:format)              admin/subscribers#destroy

但是,当我点击操作项时,我收到错误Couldn't find Subscriber with id=import_csv

如果我将方法更改为:get,则会使视图正常。我假设问题是我使用:post?如果您使用该方法调用控制器操作,是否无法呈现视图?

编辑好的,是的,使用post呈现视图没有意义,但why does the ActiveAdmin doc建议您以这种方式执行CSV导入操作?如果不生成表格,你应该如何# Do some CSV importing work here...

1 个答案:

答案 0 :(得分:0)

您需要添加方法:: post选项到指向调用的链接,因为该网址没有获取操作。