2017-05-24 19 views
0

smarter_csvを使用して、RailsアプリケーションでCSVファイルを解析しようとしています。しかし、ドキュメントは、既にアプリケーションに属しているファイルを解析する方法についてのみ説明しています。RailsでローカルのCSVファイルを解析するにはどうすればよいですか?

自分のコンピュータにローカルに保存されているファイルを解析したいとします。だから私は、ファイルをアップロードし、それを解析し、それを削除しなければならないと思う。

<%= form_tag({action: :upload}, multipart: true) do %> 
    <%= file_field :csv %> 
    <%= submit_tag 'Submit' %> 
<% end %> 

それでは、どのように私が参照して私のコントローラのアクションでアップロードされたファイルを使用することができます。

これは私が得たどのくらいいるのですか?

def upload 
    #save file temporarily to app 
    filename = #filename 
    #parse file with smarter_csv 
    #File.delete(filename) 
end 

答えて

1

次の操作を実行する必要がある文字列としてファイルパスを取得するには、次のparamsとして

filename = params[:csv].path 

[:CSV] UploadedFileオブジェクトです。一時ファイルを自分で処理する必要はありません。つまり、ファイルを保存して削除する必要はありません。 Railsはあなたのためにそれを行います。ドキュメントごと:

アップロードされたファイルは、1つのリクエストの寿命です一時ファイルです。オブジェクトがファイナライズされると、Rubyはファイルのリンクを解除するので、別のメンテナンスタスクでそれらを消去する必要はありません。

+0

です。アプリケーション内の指定されたパスにファイルを永続的に追加することは可能ですか? –

関連する問題