我正在使用回形針將Excel文件附加到模式。如何在服務器端訪問回形針附件?
目的是將數據從excel文件導入數據庫。
Model: Import
has_attached_file: spreadsheet
對於導入過程,我想訪問我的模型中的文件,如下所示。
path = "#{Rails.root}/public/#{spreadsheet.url}"
這是行不通的。我猜是因爲網址最後有時間戳。
一般來說,訪問服務器端附件的最佳方式是什麼?
我正在使用回形針將Excel文件附加到模式。如何在服務器端訪問回形針附件?
目的是將數據從excel文件導入數據庫。
Model: Import
has_attached_file: spreadsheet
對於導入過程,我想訪問我的模型中的文件,如下所示。
path = "#{Rails.root}/public/#{spreadsheet.url}"
這是行不通的。我猜是因爲網址最後有時間戳。
一般來說,訪問服務器端附件的最佳方式是什麼?
我認爲你正在尋找的to_file
方法。你應該能夠做這樣的事情:
excel_file = self.spreadsheet.to_file
這將無論是從服務器返回上傳的文件(如果您正在使用S3或遠程存儲),或者如果它已被分配到模型,但不實際上還存儲了它(如果自上載以來尚未調用model.save),它將返回存儲在磁盤上的臨時文件。
從那裏你應該可以使用excel寶石或庫來解析內容。
或者,您可以使用spreadsheet.url(nil, false)
- 第二個參數表示是否附加時間戳。
to_file像魅力一樣工作。 – rangalo 2011-01-20 18:26:23