Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 CarrierWave后台进程拒绝访问s3图像_Ruby On Rails 4_Carrierwave_Sidekiq - Fatal编程技术网

Ruby on rails 4 CarrierWave后台进程拒绝访问s3图像

Ruby on rails 4 CarrierWave后台进程拒绝访问s3图像,ruby-on-rails-4,carrierwave,sidekiq,Ruby On Rails 4,Carrierwave,Sidekiq,我当前的Sidekiq设置如下所示,正在处理图像,但没有在后台执行任何操作。加载页面需要10秒钟,然后新图像将显示在重定向页面上,路径如下。 我希望这个过程是在后台进行的 def create @photo = Photo.new(photo_params) if @photo.save UploadsWorker.perform_async(@photo.id, photo_params) flash[:notice] = "Your new photograph is being

我当前的Sidekiq设置如下所示,正在处理图像,但没有在后台执行任何操作。加载页面需要10秒钟,然后新图像将显示在重定向页面上,路径如下。

我希望这个过程是在后台进行的

def create
@photo = Photo.new(photo_params)
if @photo.save
  UploadsWorker.perform_async(@photo.id, photo_params)
  flash[:notice] = "Your new photograph is being processed."
  redirect_to photographer_listings_path(@photog)
else
  flash[:notice] =  "Check the fields marked with an orange flag."
  render 'new'
end
结束

结束

相反,我尝试使用CarrierWave Backgrounder gem,但发现版本处理没有发生。代码运行,但在保存新记录后,页面重定向上没有图像

当查看Sidekiq web界面时,我可以看到作业正在运行,然后完成

但是,我在同一个目录中留下了一个拒绝访问的映像

奇怪的是,当不使用gem是有效的时,会看到顶部显示的url


为了将图像正确地上传到s3,我不得不使用store_in_background而不是process_in_background

class UploadsWorker
 include Sidekiq::Worker

 def perform(photo_id, photo_params)
  photo = Photo.find(photo_id)
  photo.image = photo_params["image"]
  photo.save
end