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 

これにより、アップロードされた画像から 4 つのバージョンが作成さuploadれ、操作の契約に従ってアクセス可能になります。

、およびのベースラインとして使用するために、いくつかのことを:original行いたいと思います。Paperdragon でそれを実現するにはどうすればよいですか?:edited:edited:verson_a:version_b:version_c

4

1 に答える 1

0

最初の処理ブロックによって作成されたバージョンを入力として使用して、2 番目の処理ブロックを実行できます。

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 に答える