何时版本不使用carrierwave_direct进行处理?

时间:2017-01-16 05:27:01

标签: amazon-s3 carrierwave delayed-job rails-activejob carrierwave-direct

我刚刚从carrierwave_backgrounder切换到了carrierwave_direct。我有carrierwave_direct设置和运行。也就是说,主文件正在上传并可以在视图中显示。但是,我的上传器版本尚未创建。

以下是我的工作:

class ProcessReceiptJob < ApplicationJob
  queue_as :process_receipt

  def perform(expense_id, key)
    expense = Expense.find expense_id
    uploader = expense.receipt
    expense.key = key
    expense.remote_receipt_url = uploader.direct_fog_url(with_path: true)
    expense.save!
   # expense.recreate_versions!
  end

  after_perform do |job|
    expense = Expense.find(job.arguments.first)
    expense.update_column :receipt_processing, false
  end

end

当carrierwave_direct完全处理版本时---或者,当指示carwave处理版本时是什么时候?我假设使用expense.remote_receipt_url加载原始图像,然后调用save!触发上传程序处理版本。这是对的吗?

无论如何,我的原始图像是通过后台作业上传的 - 但是,版本没有被创建/上传。

我是否需要&#34; recreate_versions&#34;甚至以为他们以前不存在?在指向源文件后是否需要以某种方式显式处理版本,还是应该自动处理?

1 个答案:

答案 0 :(得分:0)

我在分配模型后没有保存模型:键在发送背景工作者之前。我将密钥作为参数发送给后台工作者,然后在处理作业时保存模型。这是问题所在。在文档中提到了在分配模型后需要保存模型:成功操作的关键。

所以,我不得不更新update_attributes(key:params [:key]),然后调用我的后台工作(顺便提一下模型再次保存)。

相关问题