如何在Heroku上使用Carrierwave S3和Sidekiq在tmp / uplodas目录中显示缓存的上传图像

时间:2013-05-07 02:07:03

标签: heroku carrierwave image-uploading sidekiq

我使用Carrierwave + carrierwave_backgrounder + Sidekiq + Heroku上传图片。上传工作正常。当提交上传表单时,我需要显示上传的图片,但后台作业仍在处理它,所以页面只显示文件名,我必须等待后台作业完成,刷新页面才能看到它。如何在页面加载完成后显示临时上传的图像?

我知道我可以配置cache_dir来存储tmp图像,之后会被删除,如下所示:
  def cache_dir
    “#{Rails.root} / TMP /上传”
  结束

我可以渲染这个tmp图像吗?如果是这样,我如何在视图中渲染它?我想避免在上传器中使用default_url

我在模型中使用process_in_background:avatar

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该能够在上传器类中定义default_url方法。

例如:

class MyUploader < CarrierWave::Uploader::Base
  def default_url
    "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  end
end