如何使用carrierwave将文件发送给用户?

时间:2011-08-25 15:59:19

标签: ruby-on-rails ruby-on-rails-3 carrierwave

这是我将旧文件发送到浏览器的旧代码:

def show
  send_file File.join(Rails.root, 'tmp', 'price.xls')
end

但是最近我发现tmp文件夹不能用作Heroku上的持久存储,所以我决定将文件移动到AWS S3。

这就是我到目前为止所得到的:

def show
  uploader = PriceUploader.new
  uploader.retrieve_from_store!('price.xls')
end

现在,如何将文件发送到浏览器?

UPD

我当然没有安装上传者

2 个答案:

答案 0 :(得分:16)

想出来。

def show
  uploader = PriceUploader.new
  uploader.retrieve_from_store!('price.xls')
  uploader.cache_stored_file!

  send_file uploader.file.path
end

答案 1 :(得分:0)

就我而言

# find  uploader ...

send_file(uploader.path,
         filename: uploader.filename,
         type: "application/<some-type>")