2011-08-03 23 views
9

我只是無法在'Writing'example in the documentation之下得到'To a String'的例子。Ruby 1.9.2在不生成文件的情況下導出一個CSV字符串

紅寶石-v返回: 紅寶石1.9.2p290(2011-07-09的修訂32553)[x86_64的-darwin10.8.0]

從我不能工作的文件的例子是在這裏:

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

我得到的錯誤是:

wrong number of arguments (0 for 1) 

所以好像我缺少一個參數,文檔here它指出:

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

但是當我傳遞一個空字符串,它給了我下面的錯誤:

No such file or directory - 

我不是找生成CSV文件,我只是想創建CSV的字符串我將文本發送給用戶。

+0

對紅寶石1.9.2作品你把=>需要 'CSV'<=之前你的方法調用? –

回答

21

下面是代碼,我知道使用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

好吧我承認我真的很喜歡stackoverflow ... –

+0

我在使用'blank?'之前得到了錯誤,所以我用'empty?'。 –

相關問題