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

bas*_*eck 8 ruby-on-rails ruby-on-rails-3 carrierwave

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

def show
  send_file File.join(Rails.root, 'tmp', 'price.xls')
end
Run Code Online (Sandbox Code Playgroud)

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

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

def show
  uploader = PriceUploader.new
  uploader.retrieve_from_store!('price.xls')
end
Run Code Online (Sandbox Code Playgroud)

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

UPD

我当然没有安装上传器

bas*_*eck 17

弄清楚了.

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

  send_file uploader.file.path
end
Run Code Online (Sandbox Code Playgroud)