我根本无法在'Writing'example in the documentation下获得'To a String'示例。
ruby -v返回: ruby 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 :(得分:22)
以下是我知道使用Rails 3.0.1对Ruby 1.9.2起作用的代码
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