ArgumentError на выходе CSV - PullRequest
       0

ArgumentError на выходе CSV

0 голосов
/ 16 февраля 2012

Я получаю следующую ошибку при попытке создать CSV:

ArgumentError в ProductsController # schedulecsv

неверное количество аргументов (0 для 1)

Контроллер My Products настроен следующим образом:

 def schedulecsv
 products = Product.find(:all)
 filename ="schedule_#{Date.today.strftime('%d%b%y')}"
  csv_data = CSV.generate do |csv|
    csv << Product.csv_header
      products.each do |p|
        csv << p.to_csv
      end
  end
  send_data csv_data,
  :type => 'text/csv; charset=iso-8859-1; header=present',
  :disposition => "attachment; filename=#{filename}.csv"
 end   

У кого-нибудь есть здесь указатели? Сводит меня с ума!

Спасибо!

1 Ответ

1 голос
/ 16 февраля 2012

Из исходного файла csv.rb поместите в / usr / lib / ruby ​​/ (версия вашего гема ruby) /csv.rb (на моей машине)

Вот исходный код CSV класса generate метод

def CSV.generate(path, fs = nil, rs = nil, &block)
  open_writer(path, 'w', fs, rs, &block)
end

generate метод требует filename, так как параметр.it создаст файл с заданным именем, но вы звоните CSV.generate имя файла пропущено

, поэтому у вас естьпереданное имя файла в генерации вызова!

filename ="schedule_#{Date.today.strftime('%d%b%y')}"
CSV.generate filename do |csv|
  csv << Product.csv_header
  products.each do |p|
    csv << p.to_csv
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...