【问题标题】:How can I parse a local CSV file with Rails?如何使用 Rails 解析本地 CSV 文件?
【发布时间】:2017-10-24 07:27:41
【问题描述】:

我正在尝试使用smarter_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

【问题讨论】:

    标签: ruby-on-rails ruby csv file-upload upload


    【解决方案1】:

    要将文件路径作为字符串获取,您需要执行以下操作:

    filename = params[:csv].path
    

    因为 params[:csv] 是一个 UploadedFile 对象。您不需要自己处理临时文件,即存储和删除它。 Rails 会为您做到这一点。根据文档:

    上传的文件是临时文件,其生命周期是一个请求。当对象最终确定时,Ruby 会取消链接文件,因此无需使用单独的维护任务来清理它们。

    【讨论】:

    • 我明白了。是否可以将文件永久添加到应用内的给定路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    相关资源
    最近更新 更多