複数の CSV ファイルをアップロードして解析しようとしています。私がこれまでに持っているもの:
私の見解
<h3>Upload multiple files</h3>
<%= form_tag({:controller => "multi_uploader", :action => "import"}, :multipart => true) do %>
<em>Upload a tab-separated .txt file to generate new rating sets.</em> <hr/>
<%= file_field_tag :file_1 %>
<hr/>
<%= file_field_tag :file_2 %>
<hr/>
<%= file_field_tag :file_3 %>
<hr/>
<%= file_field_tag :file_4 %>
<hr/>
<%= file_field_tag :file_5 %>
<hr/>
<%= file_field_tag :file_6 %>
<hr/>
<%= submit_tag "Import Data", :class => "btn btn-link"%>
<% end %>
私のコントローラー:
def import
unless params[:file_1].nil?
file_1 = params[:file_1]
RatingSet.multi_uploader(file_1)
end
unless params[:file_2].nil?
file_2 = params[:file_2]
RatingSet.multi_uploader(file_2)
end
unless params[:file_3].nil?
file_3 = params[:file_3]
RatingSet.multi_uploader(file_3)
end
unless params[:file_4].nil?
file_4 = params[:file_4]
RatingSet.multi_uploader(file_4)
end
unless params[:file_5].nil?
file_5 = params[:file_5]
RatingSet.multi_uploader(file_5)
end
unless params[:file_6].nil?
file_6 = params[:file_6]
RatingSet.multi_uploader(file_6)
end
redirect_to "/multi_uploader", :flash => { :notice => "Successfully Uploaded." }
end
ファイルをインポートするための私のモデルの方法:
def self.multi_uploader(file)
upload = File.open(file.path)
#Parse file and save data to db.
end
私のmulti_uploader
方法では、ファイルがアップロードされるはずのカテゴリのキーを (ファイルから) 解析します。単一のファイルをアップロードするとすべてが期待どおりに機能しますが、複数のファイルをアップロードすると、すべてのファイルのコンテンツが複数のカテゴリではなく単一のカテゴリに保存されます。個々のファイルではなく、すべてのファイルが単一のファイルとして扱われているようです。各ファイルを個別にアップロードするには、何を変更できますか?