3

collection_actionCSV ファイルをインポートしてそこからサブスクライバーを生成できる ActiveAdminを作成しようとしています。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か?そのメソッドでコントローラー アクションを呼び出している場合、ビューをレンダリングすることはできませんか?

edit OK、ええ、ビューをレンダリングするのは意味がありませんpostが、なぜActiveAdminドキュメントは、CSVインポートに対してこの方法でアクションを行うことを提案していますか? フォームを生成せずにどうすればいい# Do some CSV importing work here...ですか?

4

1 に答える 1

0

method: :post オプションを呼び出しへのリンクに追加する必要があります。その URL には get アクションがないためです。

于 2015-05-06T14:32:59.243 に答える