ran*_*alo 3 ruby-on-rails paperclip
我正在使用paperclip将excel文件附加到模式.
目的是将数据从excel文件导入数据库.
Model: Import
has_attached_file: spreadsheet
Run Code Online (Sandbox Code Playgroud)
对于导入过程,我想访问模型中的文件,如下所示.
path = "#{Rails.root}/public/#{spreadsheet.url}"
Run Code Online (Sandbox Code Playgroud)
这不起作用.我猜是因为网址末尾有时间戳.
一般来说,访问服务器端附件的最佳方法是什么?
我想你正在寻找这种to_file方法.你应该可以做这样的事情:
excel_file = self.spreadsheet.to_file
Run Code Online (Sandbox Code Playgroud)
它将从服务器返回上传的文件(如果您正在使用s3或远程存储),或者是否已将其分配给模型但尚未实际存储(如果您上传时尚未调用model.save) ),它返回存储在磁盘上的临时文件.
从那里你应该能够使用excel gem或库来解析内容.
或者,您可以使用spreadsheet.url(nil, false)- 第二个参数表示是否附加时间戳.