1

我遵循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。

+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