ruby-on-rails - Rails 4.0 存储临时 CSV 文件

标签 ruby-on-rails ruby csv

我正在尝试通过 submit_tag 表单加载 CSV 文件。我需要将 CSV 内容存储在内存中,以便我可以使用它们向从 CSV 加载的所有联系人发送电子邮件。然后我需要废弃 CSV 文件并忘记它。

有人有关于如何将 csv 文件存储到内存中、对其执行一些操作,然后忘记它的引用或提示吗?

最佳答案

在从表单接收提交操作的 Controller 操作中,您的 CSV 文件将作为参数哈希中的文件 IO 对象提供。所以你可以从那里加载一个 CSV 对象,例如

require 'csv' # Ruby standard library 

...

def create
  ...
  csv = CSV.load params[:csv_file]
  # use your in-memory csv object and forget about it afterwards
  ...
end

查看http://ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV.html供更多引用。

您还可以将 IO 对象传递给 CSV.open,如下所示:

CSV.open(params[:csv_file]) do |csv|
  # do something with your csv data
end

关于ruby-on-rails - Rails 4.0 存储临时 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711180/

相关文章:

ruby-on-rails - LoadError 无法自动加载常量消息

ruby-on-rails - 应用程序初始化期间的 Rake 任务

ruby-on-rails - Ruby on Rails : Sending large pictures using send_data/send_file results in errors

ruby - 忽略 GEM,因为它的扩展未构建

mysql - 如何让 MySQL 从包含 CSV 数据作为多列的 TEXT 列加载数据?

ruby-on-rails - HTTParty 正在转义 JSON

ruby-on-rails - Postgres排序问题

ruby-on-rails - 嵌入式资源中的 RSpec Controller 测试错误

java - 从java中的tsv文件读取

scala - 循环遍历 Map Spark Scala