Ruby on rails 在ruby中创建逗号分隔的csv文件

Ruby on rails 在ruby中创建逗号分隔的csv文件,ruby-on-rails,ruby,file,csv,text,Ruby On Rails,Ruby,File,Csv,Text,我有这样的数组引用 a1 = [["http://ww.amazon.com"],["failed"]] 当我将其写入csv文件时,它的写入方式如下 ["http://ww.amazon.com"] ["failed"] 但我想写得像 http://ww.amazon.com failed 首先,您需要展平阵列a1 然后,您需要通过将每一行(数组)传递给以下CSV变量来生成CSV: 需要“csv” csv_string=csv.generate({:col_sep=>“\t”})do|

我有这样的数组引用

a1 = [["http://ww.amazon.com"],["failed"]]
当我将其写入csv文件时,它的写入方式如下

["http://ww.amazon.com"]
["failed"]
但我想写得像

http://ww.amazon.com   failed
首先,您需要展平阵列
a1
然后,您需要通过将每一行(数组)传递给以下
CSV
变量来生成CSV:
需要“csv”
csv_string=csv.generate({:col_sep=>“\t”})do|csv|
csv“\t”
用于在每行中插入一个
选项卡
分隔符

:col_sep=>“,”
的值更改为使用逗号


最后,您的起点是包含正确形式的csv的
csv\u字符串
。从中写入CSV文件:

CSV.open("path/to/file.csv", "wb") do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end
然后,您可以将其指定给块(
csv
)的参数,该参数将导致数组写入文件:

require 'csv'

CSV.open('file.csv', 'wb') do |csv|
  csv << [["row"], ["of"], ["CSV"], ["data"]].flatten
end
您的问题是以这样一种方式编写的,听起来好像您试图手动生成CSV文件,而不是依赖于为特定任务设计的类。从表面上看,创建CSV似乎很容易,但是当字符串包含空格和用于分隔字符串的引号字符时,它有一些棘手的情况和问题需要处理。一个经过良好测试、预先编写的类可以为您节省大量编写和调试代码的时间,也可以使您不必向客户或经理解释数据无法正确加载到数据库中的原因


但这就留下了一个问题,为什么数组包含子数组?通常情况下,这是因为你在收集元素时做了一些错误的事情,这让我觉得你的问题应该是如何避免这样做。(称为an。)

当您向我们询问代码帮助问题时,向我们展示您编写的代码非常重要。对我们来说,更正您的代码要比编写一些东西和您尝试将其插入到位要好得多,也更容易。是的,这是可行的,但我如何才能添加一行新行以获得下一个数组结果?要将新行添加到csv,您只需
csv即可
CSV.open("path/to/file.csv", "wb") do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end
[['a'], ['b']].flatten # => ["a", "b"]
require 'csv'

CSV.open('file.csv', 'wb') do |csv|
  csv << [["row"], ["of"], ["CSV"], ["data"]].flatten
end
row,of,CSV,data