尝试生成CSV时出现以下错误:
ProductsController中的ArgumentError#schedulecsv
错误的参数数量(0表示1)
我的产品控制器设置如下:
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
有没有人在这里有任何指示?让我疯狂!
谢谢!
答案 0 :(得分:1)
来自csv.rb的来源/ usr / lib / ruby /(ruby gem的版本)/csv.rb(在我的机器上)
以下是CSV
类的generate
方法
def CSV.generate(path, fs = nil, rs = nil, &block)
open_writer(path, 'w', fs, rs, &block)
end
generate
方法需要filename
作为parameter.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