2011-01-20 62 views
3

我正在使用回形针将Excel文件附加到模式。如何在服务器端访问回形针附件?

目的是将数据从excel文件导入数据库。

Model: Import 
has_attached_file: spreadsheet 

对于导入过程,我想访问我的模型中的文件,如下所示。

path = "#{Rails.root}/public/#{spreadsheet.url}"  

这是行不通的。我猜是因为网址最后有时间戳。

一般来说,访问服务器端附件的最佳方式是什么?

回答

5

我认为你正在寻找的to_file方法。你应该能够做这样的事情:

excel_file = self.spreadsheet.to_file 

这将无论是从服务器返回上传的文件(如果您正在使用S3或远程存储),或者如果它已被分配到模型,但不实际上还存储了它(如果自上载以来尚未调用model.save),它将返回存储在磁盘上的临时文件。

从那里你应该可以使用excel宝石或库来解析内容。

或者,您可以使用spreadsheet.url(nil, false) - 第二个参数表示是否附加时间戳。

+2

to_file像魅力一样工作。 – rangalo 2011-01-20 18:26:23