2011-08-03 2 views
9

Я просто не могу получить пример «To String» в разделе «Написание» example in the documentation для работы вообще.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

ли вы размещаете => требуется 'CSV' <= до вашего вызова метода? –

ответ

21

Вот код, который я знаю, работает против Руби 1.9.2 с 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 Я признаю, что мне очень нравится stackoverflow ... –

+0

У меня возникли ошибки при использовании 'blank?' Раньше, поэтому я использую 'empty?'. –