如何将xls写入tmp文件夹
问题描述:
我遵循railscasts教程,了解如何渲染excel文件(http://railscasts.com/episodes/362-exporting-csv-and-excel)。 我们已经有很多代码,所以我试图避免使用宝石重写。我怎样才能让它写入rails/temp目录而不是让用户下载它?生成后,我只需将其附加到电子邮件并发送给用户,而不是让用户等待很长时间。我现在的问题是如何写入临时目录。如何将xls写入tmp文件夹
def mymethod
@products = Product.order(:name)
respond_to do |format|
format.xls
end
end
我们正在使用rails 3.2。
答
这是如何编写一个CSV的tmp文件
require 'csv'
def my_method
@products = Product.order(:name)
product_csv = CSV.generate do |csv|
#you have to add values to CSVs inside arrays
csv << %w(column_name1 coulmn_name2 column_name3)
@products.each do |pd|
csv << [pd.name,
pd.price,
pd.product_line]
end
end
File.open("tmp/product.xls", 'w:UTF-8') {|file| file.write(product_csv)}
end
是你能对此发表任何进展相当普遍的例子吗? –