我正在制作一个 Rails 应用程序,并希望添加一个上传功能,允许用户通过 Excel 电子表格一次上传多个条目,而不是一次输入一个条目。
理想情况下,我希望在 new.html.erb 文件的底部添加一个单独的上传/提交部分(粗体部分是上传 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
而我的收入模型控制器(还没有开发动作,现在只是一个重定向):
...
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文件,解析它,并有条件地将每个数据行添加到我的数据库中,我的印象是我可以在上传操作中指定。请帮忙!