2011-08-03 5 views
9

Je n'arrive pas à obtenir l'exemple 'To a String' sous 'Writing' example in the documentation pour fonctionner.Ruby 1.9.2 exporter une chaîne CSV sans générer de fichier

rubis -v retourne: rubis 1.9.2p290 (2011-07-09 révision 32553) [x86_64-darwin10.8.0]

L'exemple de la documentation que je ne peux pas travailler ici:

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

l'erreur que je reçois est:

wrong number of arguments (0 for 1) 

il semble donc que je manque un argument, dans la documentation here il est écrit:

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

Mais quand je passe dans une chaîne vide, il me donne l'erreur suivante:

No such file or directory - 

Je ne cherche pas à générer un fichier csv, je voulais juste créer une chaîne de csv J'envoie comme texte à l'utilisateur.

+0

Avez-vous place => require 'csv' <= avant votre appel de méthode? –

Répondre

21

Voici le code que je connais des œuvres contre Ruby 1.9.2 avec Rails 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 J'avoue que j'aime vraiment stackoverflow ... –

+0

J'ai eu des erreurs en utilisant 'blank?' Avant, donc j'utilise 'empty?'. –

Questions connexes