2017-05-24 19 views
0

我正在嘗試使用smarter_csv來解析csv文件和我的Rails應用程序。但文檔只解釋瞭如何解析已經屬於該應用程序的文件。如何使用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

要獲取文件路徑,你需要做以下的字符串:

filename = params[:csv].path 

爲PARAMS [:CSV]是一個UploadedFile對象。您不需要自己處理臨時文件,即存儲和刪除臨時文件。 Rails會爲你做到這一點。根據文檔:

上傳的文件是臨時文件,其壽命是一個請求。當對象完成時,Ruby會取消鏈接該文件,因此不需要使用單獨的維護任務來清除它們。

+0

我明白了。是否有可能將文件永久添加到應用程序中的給定路徑? –