0

在使用 Paperdragon 处理图像的 Trailblazer 操作中,典型的代码如下:

def process(params)
  validate(params) do |f| 
    f.image!(f.upload) do |v| 
      v.process!(:original)
      v.process!(:version_a) { |job| job.something... }
      v.process!(:version_b) { |job| job.something... }
      v.process!(:version_c) { |job| job.something... }
      end 
    end 
  end 
end 

这将从上传的图像创建四个版本,该图像可根据upload操作的合同进行访问。

我想做一些事情来:original生成,:edited然后用作,和:edited的基线。我如何使用 Paperdragon 实现这一目标?:verson_a:version_b:version_c

4

1 回答 1

0

您可以使用第一个创建的版本作为其输入来运行第二个处理块:

def process(params)
  validate(params) do |f| 
    f.image!(f.upload) do |v| 
      v.process!(:original)
      v.process!(:edited) { |job| job.thumb!(crop) }
      end 
    end 
    f.image!(f.file(:edited)) do |v| 
      v.process!(:version_a) { |job| job.something... }
      v.process!(:version_b) { |job| job.something... }
      v.process!(:version_c) { |job| job.something... }
    end                                                                           
    f.save
  end 
end

file合同上的方法在哪里:

def file(version)
  File.new(Dragonfly.app.datastore.server_root+image[version.to_sym].url)
end
于 2016-02-23T16:40:44.033 回答