2011-08-03 21 views
9

Hiç çalışmak için 'Yazma' example in the documentation altındaki 'Bir Dizeye' örneği veremiyorum. döner vRuby 1.9.2 bir dosya oluşturmadan bir CSV dizesi dışa aktarma

yakut: yakut 1.9.2p290 (2011-07-09 düzeltme 32.553) [x86_64-darwin10.8.0] Çalışmaya olamaz belgelerine

örneğin burada:

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

alıyorum hatadır: Ben belgelerinde here yılında, bir argümanı eksik gibi

wrong number of arguments (0 for 1) 

Öyle görünüyor belirtir:

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

Ama boş dize geçmek zaman, bana aşağıdaki hatayı veriyor: Ben bir csv dosyası oluşturmak için aramıyorum

No such file or directory - 

, sadece csv bir dize oluşturmak istediğini Kullanıcıya metin olarak gönderirim. İşte

+0

Ruby 1.9.2 karşı çalıştığını biliyorum kod edilir <= sizin yöntem çağrısından önce? –

cevap

21

Sana => 'csv' gerektiren yerleştirmek mı Raylar 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

Tamam I love stackoverflow seviyorum ... –

+0

'blank?' Kullanmadan önce hatalar aldım, bu yüzden boş kullanıyorum? –

İlgili konular