如何正确写入CSV文件

时间:2012-05-22 13:20:12

标签: ruby csv

我正在使用ruby 1.9.2并且还使用它的csv库。我想正确编写csv

像这样

name,country_code,destination,code
Afghanistan,93,Bamain,51
Afghanistan,93,Bamain,52
Afghanistan,93,Bamain,53
Afghanistan,93,Parwan,91

我的代码就是这个

def export_data
  @coun = Country.all(:limit => 10)
  header = "name,country_code,destination,code"
  file = "my_file.csv"
  File.open(file, "w") do |csv|
    csv << header
    @coun.each do |c|
      csv << [c.name, c.country_code, c.user_id, c.subscriber_id]       
      # How puts line break here
    end
  end
  send_file(file)
end

我上面已经提到了如何将我的行放在CSV文件中并且也省略了这个

的叹息

涵盖CSV“[]”

中的每一行
 Like   ["Finland",1,1,2334]

提前致谢..

2 个答案:

答案 0 :(得分:66)

我认为一般的CSV编写器对你来说足够好了:

require 'csv'
file = "my_file.csv"
CSV.open( file, 'w' ) do |writer|
  @coun.each do |c|
    writer << [c.name, c.country_code, c.user_id, c.subscriber_id]
  end
end

答案 1 :(得分:35)

csv << "\n"

Stackoverflow在答案中需要30个字符,但我不知道还能说些什么。