2011-08-03 18 views
9

No puedo obtener el ejemplo 'A una cadena' en 'Escribir' example in the documentation para que funcione.Ruby 1.9.2 exportar una cadena CSV sin generar un archivo

ruby ​​-v devuelve: rubí 1.9.2p290 (2011-07-09 revisión 32553) [x86_64-darwin10.8.0]

El ejemplo de la documentación no puedo trabajar está aquí:

csv_string = CSV.generate do |csv| 
    csv << ["row", "of", "CSV", "data"] 
    csv << ["another", "row"] 
end 

el error que consigo es:

wrong number of arguments (0 for 1) 

Así que parece que me falta una discusión, en la documentación here se afirma:

This method wraps a String you provide, or an empty default String 

Pero cuando paso en una cadena vacía, me da el siguiente error:

No such file or directory - 

No estoy buscando para generar un archivo csv, sólo quería crear una cadena de CSV que Envío como texto al usuario.

+0

¿Ha puesto => requieren 'csv' <= antes de la llamada al método? –

Respuesta

21

Aquí está el código que sabemos que funciona en contra de Ruby 1.9.2 con rieles 3.0.1

def export_csv(filename, header, rows) 
    require 'csv' 

    file = CSV.generate do |csv| 
     csv << header if not header.blank? 
     rows.map {|row| csv << row} 
    end 

    send_data file, :type => 'text/csv; charset=iso-8859-1; header=present', :disposition => "attachment;filename=#{filename}.csv" 
end 
+7

OK Admito que realmente amo stackoverflow ... –

+0

He recibido errores al usar 'blank?' Antes, entonces uso 'empty?'. –

Cuestiones relacionadas