Как отправить файл пользователю с carrierwave? - PullRequest
8 голосов
/ 25 августа 2011

Вот мой старый код для отправки файла в браузер:

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 ]

16 голосов
/ 25 августа 2011

Разобрался.

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

  send_file uploader.file.path
end
0 голосов
/ 22 мая 2017

В моем случае

# find  uploader ...

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