collection_action
CSV ファイルをインポートしてそこからサブスクライバーを生成できる 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...
ですか?