我按照railscasts教程了解如何渲染excel文件(http://railscasts.com/episodes/362-exporting-csv-and-excel)。 我们已经有很多代码,所以我试图通过使用gem来避免重写。如何让它写入rails / temp目录而不是让用户下载它?生成之后,我只需将其附加到电子邮件中并发送给用户,而不是让用户等待很长时间。我现在的问题是如何写入临时目录。
def mymethod
@products = Product.order(:name)
respond_to do |format|
format.xls
end
end
我们正在使用rails 3.2。
答案 0 :(得分:0)
这是如何将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