Rails アプリを作成していますが、一度に 1 つのエントリを入力するのではなく、ユーザーが Excel スプレッドシートを使用して一度に複数のエントリをアップロードできるようにするアップロード機能を追加したいと考えています。
理想的には、new.html.erb ファイルの末尾に個別の Upload/Submit 部分を追加したいと考えていました (太字部分は Upload HTML.erb です)。
...
<div class="actions">
<%= f.submit %>
</div>
<% end %>
**<div class="field">
Or Upload Multiple Entries <br />
<%= form_tag({:action => :upload}, :multipart => true) do %>
<%= file_field_tag 'multi_doc' %>
<% end %>
</div>**
ここに私のroutes.rbファイルがあります:
Dataway::Application.routes.draw do
devise_for :users
resources :revenue_models do
get 'upload', :on => :collection
end
root :to => "home#index"
end
そして、私の Revenue_models_controller (まだアクションをまったく開発していません。現在はリダイレクトのみです):
...
def upload
redirect_to revenue_models_path
end
ファイルのアップロードとルーティング ファイルの Rails ガイドに従っていますが、変更した /new ビューを開こうとするとエラーが発生し続けます。
Routing Error
No route matches {:action=>"upload", :controller=>"revenue_models"}
Try running rake routes
rake route を実行すると、アップロード アクションのエントリが表示されます。
upload_revenue_models GET /revenue_models/upload(.:format) revenue_models#upload
最後に、複数のエントリを含む Excel ファイルをアップロードして解析し、条件付きで各データ行をデータベースに追加したいと思います。これは、アップロード アクションで指定できるという印象を受けました。助けてください!