2012-05-22 16 views
10

estoy usando ruby ​​1.9.2 y también utilizar su csv library.I quiere escribir en csv adecuadamente simplementeCómo escribir en el archivo CSV correctamente

como esto

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

Mi código es este

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 

tengo mención más arriba cómo pone i salto de línea no en el archivo CSV y también omite este suspiro que

cubiertas cada fila de CSV "[]"

Like ["Finland",1,1,2334] 

Gracias de antemano ..

Respuesta

28
csv << "\n" 

Stackoverflow requiere 30 caracteres en una respuesta, pero no sé qué más decir.

+8

Tal vez podría explicar por qué esto funciona? – Tommyixi

58

creo escritor en general CSV será lo suficientemente bueno para usted:

require '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 
Cuestiones relacionadas